【问题标题】:C# two double quotesC# 两个双引号
【发布时间】:2012-03-23 21:03:11
【问题描述】:

我想在 C# 中打印两个双引号作为输出。如何做到这一点?

我的意思是输出应该是:"" Hello World ""

【问题讨论】:

    标签: c# string-literals


    【解决方案1】:

    如果您想在字符串中添加双引号,您需要使用 \ 转义它们

    例如:

    string foo = "here is a \"quote\" character";
    

    如果你想直接输出"" Hello World "",那么你需要:

    string helloWorld = "\"\" Hello World \"\"";
    output(helloWorld);
    

    (其中输出是您用于输出的任何方法)

    【讨论】:

      【解决方案2】:

      一种方法是转义引号:

      var greeting = "\"Hello World\"";
      

      【讨论】:

        【解决方案3】:

        逃离他们:

        Console.WriteLine("\"Hello world\"");
        

        【讨论】:

          【解决方案4】:
          Console.WriteLine("\"\" Hello world \"\"");
          

          Console.WriteLine(@""""" Hello world """"");
          

          【讨论】:

          • 啊,你刚刚打败了我。这么简单的问题,居然有这么多不正确的答案!
          • 4个双引号("""")是什么意思?
          • @Monish "" 是 @"..." 逐字字符串文字中的单双引号。
          【解决方案5】:

          在双引号前使用反斜杠:\"

          【讨论】:

            【解决方案6】:
            Console.WriteLine("\"\"Hello world\"\"");
            

            反斜杠 ('\') 字符位于任何“特殊”字符之前,否则这些字符会被解释为您的代码,而不是作为要输出的字符串的一部分。这是一种告诉编译器将其视为字符串的字符部分而不是在 C# 语言中具有某种用途的字符的一种方式。

            【讨论】:

              【解决方案7】:

              在“普通”双引号之前使用@-char 将导致打印这些双引号之间的每个特殊字符

              string foo = @"foo "bar"";
              

              【讨论】:

              • 在逐字字符串 (@"") 中,您需要使用 2 个引号字符,即""。你所拥有的是错误的。 OP 会想要 @""""" Hello World """"" 之类的东西。
              • 确实如此。双引号实际上是“@string”中唯一的特殊字符(我忘记了它们的真名)。这是因为很明显 @ 是字符串的终止符,因此如果用于不终止字符串,则需要对其进行转义。
              【解决方案8】:

              你可以用@输出,它会自动转义特殊字符。

              string output = "\"\" Hello World \"\"";
              
              string output = @""""" Hello World """"";
              

              【讨论】:

                【解决方案9】:

                如果您想使用语言中存在的特殊字符,请在该字符之前添加 \,然后特殊字符开始表现为字符串。在你的情况下使用这样的

                \"Hello word\"
                

                输出

                 "Hello word"
                

                【讨论】:

                  【解决方案10】:

                  如果您必须经常这样做,并且希望代码更简洁,您可能希望为此提供一个扩展方法。

                  这是非常明显的代码,但我仍然认为它很有用,可以让你节省时间。

                    /// <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()。

                  希望对您有所帮助。

                  【讨论】:

                    【解决方案11】:

                    StringBuilder sb = new StringBuilder(); sb.Append("\"Hello World \""); string s = sb.ToString();

                    【讨论】:

                    • 为什么要使用StringBuilder 来转义string
                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2022-06-16
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-06-24
                    • 1970-01-01
                    相关资源
                    最近更新 更多