这可能是一个非常简单的问题,但我似乎无法理解它。我需要一个包含\"
的字符串,而不将其视为转义字符。我尝试使用@
,但它不起作用。我想到的另一种方法是使用\u0022
,但除非我能帮助它,否则不想这样做。
所需字符串 - string s = "\"\""; // Obviously this doesn't work!
所需的控制台输出 - \"\"
希望这是有道理的。
谢谢!
答案 0 :(得分:6)
尝试
string s = "\\\"\\\"";
你也必须逃避反斜杠。
麦克
答案 1 :(得分:5)
在逐字字符串文字(@"..."
)中,字符串值中的"
被编码为""
,这恰好也是中的转义序列逐字字符串。
@"\""Happy coding!\""" // => \"Happy coding!\"
"\\\"Happy coding!\\\"" // => \"Happy coding!\"
请注意,在第二种情况下(不是逐字字符串文字),\
和 \
之前需要"
才能转义它们防止它们的正常含义。
有关详细信息和示例,请参阅C# string reference。
答案 2 :(得分:5)
您可以使用文字,但需要加倍引号。
string s = @"\""\""";
答案 3 :(得分:4)
我认为你也必须逃避反斜杠...所以像"\\\"\\\""
这样的东西应该有用,我相信。
答案 4 :(得分:1)
使用此字符串:
string s = "\\\"\\\"";
答案 5 :(得分:1)
Console.WriteLine( "\\\"\\\"" );
只需在需要打印的每个字符前加\
。
答案 6 :(得分:1)
String s = @"\""\""";
DblQuote字符将转义第二个dblquote字符
虽然为了更好的可读性,我会选择:
const String DOUBLEQUOTE = """";
const String BACKSLASH = @"\";
String s = BACKSLASH + DOUBLEQUITE + BACKSLASH + DOUBLEQUOTE;
答案 7 :(得分:1)
在用双引号转义的逐字字符串(以@""
开头的字符串)中,您使用双引号,例如@"Please press ""Ok""."
。如果你想用逐字字符串来做,那么你会做@"\"""
之类的事情(那里有3个双引号)。
答案 8 :(得分:0)
你可以这样做,
string s = "something'\\\'";
在字符串中使用单个“而不是”“来执行相同操作。