今天,用Java读取配置文件占位符,使用String.Format(string format,object arg0)方法。以前只知“{0}”为索引占位符(即格式项),与参数列表中的第一个对象相对应,格式设置过程将每个格式项替换为对应对象的值的文本表示形式。但这次需将参数对象格式成一对大括号括起来的格式,即返回字符串“{对象arg0的文本表示形式}”。

//直接加大括号

String.Format("{{0}}",1);//{0}

如果使用上面语句,并不能获得所需结果“{1}”,因为左大括号和右大括号被解释为格式项的开始和结束,如果要在format参数中指定大括号字符,须使用转义序列显示文本左大括号或右大括号。在格式化字符串中这个转义字符还是大括号本身。因此,在固定文本中指定两个左大括号 (“{{”) 以显示一个左大括号 (“{”),或指定两个右大括号 (“}}”) 以显示一个右大括号 (“}”)。

//本例的一种正确方式

String.Format("{{{0}}}",1);//{1}

按照在format中遇到大括号的顺序依次解释它们,不支持解释嵌套的大括号。虽然上面能得到正确结果,但解释转义大括号的方式会导致意外的结果。例如,考虑要显示一个左大括号、一个格式化为十进制数的数值和一个右大括号的格式项“{{{0:D}}}“。但是,实际是按照以下方式解释该格式项:

1、前两个左大括号 ("{{") 被转义,生成一个左大括号;2、之后的三个字符 ("{0:") 被解释为格式项的开始。3、下一个字符 ("D") 将被解释为 Decimal 标准数值格式说明符,但后面的两个转义大括号 ("}}") 生成单个大括号。

由于得到的字符串 ("D}") 不是标准数值格式说明符号,所以得到的字符串会被解释为用于显示字符串“D}”的自定义格式字符串。4、最后一个大括号 ("}") 被解释为格式项的结束。5、显示的最终结果是字符串“{D}”。不会显示本来要格式化的数值。

在编写代码时,避免错误解释转义大括号和格式项的一种方法是单独格式化大括号和格式项。也就是说,在第一个格式化操作中显示文本左大括号,在下一操作中显示格式项的结果,然后在最后一个操作中显示文本右大括号。

//正确无误的形式

String.Format("{0}{1}{2}","{",1,"}");//{1}

java字符串 大括号_string.format格式化字符串中转义大括号“{}”相关推荐

  1. python 大括号转义_string.format格式化字符串中转义大括号“{}”

    今天,用C#写程序操作Excel,读取单元格内容根据所需格式生成字符串,使用String.Format(string format,object arg0)方法.以前只知"{0}" ...

  2. C#格式化字符串中转义大括号“{}”

    C#格式化字符串中转义大括号"{}" 原文:C#格式化字符串中转义大括号"{}" 今天,用C#写程序操作Excel,读取单元格内容根据所需格式生成字符串,使用S ...

  3. linux括号转义字符串,C#格式化字符串中转义大括号“{}”

    转自:https://blog.csdn.net/weixin_30312659/article/details/98686107 原文:http://www.cnblogs.com/fsjohnhu ...

  4. Python用format格式化字符串

    format是是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 2.单个参数可以多次输出,参数顺 ...

  5. Python基础教程:format 格式化字符串用法

    1.format 格式化字符串 (1) 顺序传参 (2) 索引传参 (3) 关键字传参 (4) 容器类型传参 {} 代表的是占位符 2.顺序传参 strvar = "{}向{}开了一枪&qu ...

  6. 在String.Format [复制]中转义大括号'{'

    本文翻译自:Escape curly brace '{' in String.Format [duplicate] This question already has an answer here: ...

  7. 字符串原样输出程序python_Python格式化字符串(格式化输出)

    Python 提供了"%"对各种类型的数据进行格式化输出,例如如下代码: price = 108 print ("the book's price is %s" ...

  8. java 补齐字符串_使用String.format()格式化字符串,java自动补全自增长字符串

    JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object... args) 使用指定的语言 ...

  9. 字符串类型及format格式化

    文章目录 字符串 字符串的索引与切片 字符串的format方法 format方法的格式控制 填充 对齐 宽度 精度 类型 字符串操作符 字符串处理函数 字符串处理方法 str.lower() and ...

最新文章

  1. C#条件判断-根据条件判断要走的路-if结构
  2. 为何 Map接口不继承Collection接口
  3. 关于ACCESS的事务与存储过程的调用
  4. AS升级3.1 编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin.
  5. 美国计算机专业 学校推荐信,美国大学计算机专业推荐信范文
  6. Python Day05
  7. java开发规范-控制语句
  8. 鱼眼镜头的成像原理到畸变矫正(完整版)
  9. 单代号网络图计算例题_考点连载 |项目管理计算题考点五:解单代号网络计划图...
  10. 【图文教程】Shell基础知识
  11. paypal php 返回_接入 paypal PHP-sdk 支付 / 回调 / 退款全流程
  12. Ubuntu 18 永久设置分辨率1920x1080
  13. JAVA计算机毕业设计补课管理系统Mybatis+系统+数据库+调试部署
  14. Eclipse中Android SDK Manager无法打开
  15. [CF796E Round#408 Div.2]Exam Cheating——[计数DP]
  16. radial-gradient
  17. 常见网络设备/应用的默认密码的几种收集方式
  18. 微服务:全链路压测和容量规划
  19. 精华推荐 |【开发百宝箱之猿如意使用指南】「工欲成其事,必先利其器」一文教你如何通过“猿如意” 优化工作、生活和学习!
  20. sqlalchemy 11 Alembic

热门文章

  1. 我的编码规范(慢慢补充)
  2. hyper-v NAT网络
  3. graphcool-framework 一个基于graphql的后端开发框架
  4. ASP.NET MVC Controller激活系统详解:默认实现
  5. 读写应用程序数据-SQLite3
  6. KeyMob移动广告聚合平台:类似于房地产中介
  7. Fedora开启telnet服务
  8. 扩展和修改 Enterprise Library 缓存应用程序块
  9. ARTS打卡计划第六周
  10. flask(一)之路由和视图