双引号可以像这样转义:
string test = @"He said to me, ""Hello World"". How are you?";
但这涉及到向字符串中添加字符“。是否有c#函数或其他方法来转义双引号,以便不需要更改字符串?
双引号可以像这样转义:
string test = @"He said to me, ""Hello World"". How are you?";
但这涉及到向字符串中添加字符“。是否有c#函数或其他方法来转义双引号,以便不需要更改字符串?
当前回答
请解释你的问题。你说:
但这涉及到向字符串中添加字符“。
这是什么问题?你不能输入string foo = " foo "bar"";,因为这会引发编译错误。至于添加部分,在字符串大小方面,这是不正确的:
@"""".Length == 1
"\"".Length == 1
其他回答
在c#中,你可以使用反斜杠在字符串中加入特殊字符。 例如,要输入“,你需要写\”。 你可以用反斜杠写很多字符:
与其他字符反斜杠
\0 nul character
\a Bell (alert)
\b Backspace
\f Formfeed
\n New line
\r Carriage return
\t Horizontal tab
\v Vertical tab
\' Single quotation mark
\" Double quotation mark
\\ Backslash
任何数字字符替换:
\xh to \xhhhh, or \uhhhh - Unicode character in hexadecimal notation (\x has variable digits, \u has 4 digits)
\Uhhhhhhhh - Unicode surrogate pair (8 hex digits, 2 characters)
No.
要么像您所拥有的那样使用逐字串字面量,要么转义“using反斜杠”。
string test = "He said to me, \"Hello World\" . How are you?";
在这两种情况下,字符串都没有改变——其中只有一个转义的“。这只是告诉c#字符是字符串的一部分,而不是字符串结束符的一种方式。
c# 6中值得一提的另一件事是插值字符串可以与@一起使用。
例子:
string helloWorld = @"""Hello World""";
string test = $"He said to me, {helloWorld}. How are you?";
Or
string helloWorld = "Hello World";
string test = $@"He said to me, ""{helloWorld}"". How are you?";
在这里检查运行代码!
在这里查看插值的参考!
请解释你的问题。你说:
但这涉及到向字符串中添加字符“。
这是什么问题?你不能输入string foo = " foo "bar"";,因为这会引发编译错误。至于添加部分,在字符串大小方面,这是不正确的:
@"""".Length == 1
"\"".Length == 1
在c#中,至少有四种方法可以在字符串中嵌入引号:
带反斜杠的转义引号 字符串前面加@并使用双引号 使用对应的ASCII字符 使用十六进制Unicode字符
详细说明请参考本文件。