C#转义大括号“{}”
来源:互联网 发布:淘宝lisa国潮是正品吗 编辑:程序博客网 时间:2024/06/07 01:33
以前只知“{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}
- C#转义大括号“{}”
- C#格式化字符串中转义大括号“{}”
- C#格式化字符串中转义大括号“{}”
- C#格式化字符串中转义大括号“{}”
- C#格式化字符串中转义大括号“{}”
- C#程序中转义大括号问题('{','}')
- 如何在XAML中转义大括号
- Smarty 定界符 花括号 大括号 函数定义 转义
- XAML中如何转义尖括号和大括号
- 中括号和大括号在正则表达式的转义,包括很多特殊字符
- C# string.Format() 方法中输出大括号
- shell 小括号中括号大括号
- [shell] 小括号、中括号、大括号
- dede 大括号,中括号。
- shell中的括号(小括号,大括号/花括号)
- shell中的括号(小括号,大括号/花括号)
- shell中的括号(小括号,大括号/花括号)
- shell中的括号(小括号,大括号,中括号)
- masm winasm 出现如下错误
- 内存越界导致的malloc失效问题
- 关于restrict关键字
- Leetcode: Binary Tree Inorder Traversal
- Fedora 18下安装VirtualBox
- C#转义大括号“{}”
- CareerCup 4.1
- UIButton创建不能使用UIButton alloc
- 黑马程序员——java代理技术
- git tutorial
- imshow(I, [low high]) matlab
- Class.forName
- 黑马程序员 JS数组方法汇总 array数组元素的添加和删除
- getContentPane()