如何在字符串文字中引用\“(斜杠双引号)?

时间:2012-03-13 16:35:36

标签: c# string literals

这可能是一个非常简单的问题,但我似乎无法理解它。我需要一个包含\"的字符串,而不将其视为转义字符。我尝试使用@,但它不起作用。我想到的另一种方法是使用\u0022,但除非我能帮助它,否则不想这样做。

所需字符串 - string s = "\"\""; // Obviously this doesn't work!

所需的控制台输出 - \"\"

希望这是有道理的。

谢谢!

9 个答案:

答案 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'\\\'";

在字符串中使用单个“而不是”“来执行相同操作。