在string中使用双引号
双引号可以像这样转义:
string test = @"He said to me, ""Hello World"". How are you?";
但是这涉及添加字符"
的string。是否有一个C#函数或其他方法来转义双引号,以便不需要更改string?
没有。
既可以使用逐字string文字,也可以跳过"
使用反斜杠”。
string test = "He said to me, \"Hello World\" . How are you?";
这个string在任何情况下都没有改变 – 它里面只有一个转义字符"
,这只是告诉C#字符是string的一部分而不是string终止符。
你可以用任何方式使用反斜杠。
string str = "He said to me, \"Hello World\". How are you?";
它打印;
He said to me, "Hello World". How are you?
这是完全相同的打印;
string str = @"He said to me, ""Hello World"". How are you?";
这是一个DEMO
。
"
仍然是你的string的一部分。
从MSDN中检查Escape Sequences
和String literals
。
在C#中,您可以使用反斜杠将特殊字符添加到您的string中。 例如,把“,你需要写”。 使用反斜杠写有很多字符:带有数字的反斜杠:
- \ 000 null
- \ 010退格
- \ 011水平制表符
- \ 012新线
- \ 015回车
- \ 032替代品
- \ 042双引号
- \ 047单引号
- \ 134反斜杠
- 140重音符
反斜杠与其他字符
- 一响(警戒)
- \ b退格
- \ Formfeed
- \ n新行
- \ r回车
- \ t水平标签
- \ v垂直标签
- 单引号
- “双引号
- \反斜杠
- \? 字面问号
- \ ooo八进制符号的ASCII字符
- \ x hh以hex表示法的ASCII字符
- \ x hhhhhex符号的Unicode字符,如果此转义序列用于宽字符常量或Unicodestring文字中。 例如,WCHAR f = L'\ x4e00'或WCHAR b [] = L“其中一个汉字是\ x4e00”。
你误解了逃跑。
额外的"
字符是string文字的一部分;它们被编译器解释为单个字符"
。
你的string的实际价值仍然是He said to me , "Hello World".How are you ?
,你会看到如果你在运行时打印它。
请解释你的问题。 你说:
但是这涉及到添加字符“的string。
这是什么问题? 你不能inputstring foo = "Foo"bar"";
,因为这会调用一个编译错误。 至于增加的部分,在string大小方面是不正确的:
@"""".Length == "\"".Length == 1