如何在.NET中格式化字符串中使用花括号(大括号)
如何使用string.Format
方括号被转义。 例如:
String val = "1,2,3"
String.Format(" foo {{0}}", val);
此示例不会引发异常,但会输出字符串foo {0}
有没有办法摆脱括号?
为了输出foo {1, 2, 3}
你必须做如下的事情:
string t = "1, 2, 3";
string v = String.Format(" foo {{{0}}}", t);
要输出一个{
你使用{{
并输出}
你使用}}
。
是的输出{
在string.Format
你必须像这样转义它{{
所以这
String val = "1,2,3";
String.Format(" foo {{{0}}}", val);
将输出"foo {1,2,3}"
。
但是你必须知道C#中的一个设计错误,就是通过继续上面的逻辑,你会认为下面的代码会打印{24.00}
int i = 24;
string str = String.Format("{{{0:N}}}", i); //gives '{N}' instead of {24.00}
但是这打印{N}。 这是因为C#分析转义序列和格式化字符的方式。 为了在上述情况下获得所需的值,您必须改用此值。
String.Format("{0}{1:N}{2}", "{", i, "}") //evaluates to {24.00}
参考文章String.Format gottach和String Formatting FAQ
差不多了! 大括号的转义序列是{{
或}}
因此对于您的示例,您可以使用:
string t = "1, 2, 3";
string v = String.Format(" foo {{{0}}}", t);
链接地址: http://www.djcxy.com/p/8917.html
上一篇: How to escape braces (curly brackets) in a format string in .NET