我有类似的奇怪要求:
string a = @"test content {1} test content {2}"
打印时,我需要输出
test content {1}
test content {2}
所以,我尝试将\r\n
附加到字符串,但它打印如下:
string a = "test content {1}\r\n test content {2}\r\n"
输出
test content {1}\r\n test content {2}\r\n
为什么会出现这种情况?有什么想法吗?
答案 0 :(得分:3)
问题出在@
之前的string
开始。
它告诉编译器逃避string
跟随,所以事实上就是这样:
string s = "test content {1}\\r\\ntest content {2}"
删除@
,它会起作用。
答案 1 :(得分:2)
关于原始字符串 - 在字符串中包含换行符,@很重要!
string a = @"test content {1}
test content {2}";
输出将是:
test content
test content
答案 2 :(得分:1)
string a = "test content {1}" + Environment.NewLine + " test content {2}" + Environment.NewLine;
Environment.NewLine逃脱了一行。
答案 3 :(得分:1)
您正在使用字符串中的分隔符
这一事实string a = "test content {1}\r\n test content {2}\r\n"
告诉代码将它们作为可显示的字符串处理 - 惊喜! 我建议你将字符串分成单独的组,比如
string a = "test content {1}" + Environment.NewLine + "test content {2}";
答案 4 :(得分:1)
我认为最好的方法是使用StringBuilder类,因为字符串是不可变的
StringBuilder strb = new StringBuilder();
strb.AppendLine("test content {1}");
strb.Append("test content {2}");
string a = strb.ToString();
答案 5 :(得分:0)
您可以使用String.Format()和Environment.NewLine:
String.Format("test content
{}
{0}test content {{2}}", Environment.NewLine)
Double {0}
用于转义此字符。 {{1}}插入Environment.NewLine字符串。