如何使用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 t = "1, 2, 3";
string v = String.Format(" foo {{{0}}}", t);