【发布时间】:2012-03-23 21:03:11
【问题描述】:
我想在 C# 中打印两个双引号作为输出。如何做到这一点?
我的意思是输出应该是:"" Hello World ""
【问题讨论】:
标签: c# string-literals
我想在 C# 中打印两个双引号作为输出。如何做到这一点?
我的意思是输出应该是:"" Hello World ""
【问题讨论】:
标签: c# string-literals
如果您想在字符串中添加双引号,您需要使用 \ 转义它们
例如:
string foo = "here is a \"quote\" character";
如果你想直接输出"" Hello World "",那么你需要:
string helloWorld = "\"\" Hello World \"\"";
output(helloWorld);
(其中输出是您用于输出的任何方法)
【讨论】:
一种方法是转义引号:
var greeting = "\"Hello World\"";
【讨论】:
逃离他们:
Console.WriteLine("\"Hello world\"");
【讨论】:
Console.WriteLine("\"\" Hello world \"\"");
或
Console.WriteLine(@""""" Hello world """"");
【讨论】:
在双引号前使用反斜杠:\"
【讨论】:
Console.WriteLine("\"\"Hello world\"\"");
反斜杠 ('\') 字符位于任何“特殊”字符之前,否则这些字符会被解释为您的代码,而不是作为要输出的字符串的一部分。这是一种告诉编译器将其视为字符串的字符部分而不是在 C# 语言中具有某种用途的字符的一种方式。
【讨论】:
在“普通”双引号之前使用@-char 将导致打印这些双引号之间的每个特殊字符
string foo = @"foo "bar"";
【讨论】:
@"") 中,您需要使用 2 个引号字符,即""。你所拥有的是错误的。 OP 会想要 @""""" Hello World """"" 之类的东西。
你可以用@输出,它会自动转义特殊字符。
string output = "\"\" Hello World \"\"";
string output = @""""" Hello World """"";
【讨论】:
如果您想使用语言中存在的特殊字符,请在该字符之前添加 \,然后特殊字符开始表现为字符串。在你的情况下使用这样的
\"Hello word\"
输出
"Hello word"
【讨论】:
如果您必须经常这样做,并且希望代码更简洁,您可能希望为此提供一个扩展方法。
这是非常明显的代码,但我仍然认为它很有用,可以让你节省时间。
/// <summary>
/// Put a string between double quotes.
/// </summary>
/// <param name="value">Value to be put between double quotes ex: foo</param>
/// <returns>double quoted string ex: "foo"</returns>
public static string PutIntoQuotes(this string value)
{
return "\"" + value + "\"";
}
然后你可以在你喜欢的每个字符串上调用 foo.PutIntoQuotes() 或 "foo".PutIntoQuotes()。
希望对您有所帮助。
【讨论】:
StringBuilder sb = new StringBuilder();
sb.Append("\"Hello World \"");
string s = sb.ToString();
【讨论】:
StringBuilder 来转义string?