如何在.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

下一篇: Sending email in .NET through Gmail