84

我怎样才能使 Java 打印"Hello"

当我输入System.out.print("Hello");输出将是Hello. 我正在寻找的是"Hello"引号("")。

4

11 回答 11

159
System.out.print("\"Hello\"");

双引号字符必须在 Java 字符串文字中使用反斜杠进行转义。其他需要特殊处理的字符包括:

  • 回车和换行:"\r""\n"
  • 反斜杠:"\\"
  • 单引号:"\'"
  • 水平制表符和换页:"\t""\f"

Java 字符串和字符文字转义的完整列表可以在JLS的第 3.10.6 节中找到。

还值得注意的是,您可以使用 Unicode 转义序列在源代码中包含任意 Unicode 字符,\uxxxx其中xs 是十六进制数字。但是,它们与普通的字符串和字符转义不同,因为您可以在 Java 程序的任何地方使用它们……不仅仅是在字符串和字符文字中;有关在 Java 源代码中使用 Unicode 的详细信息,请参阅 JLS 第3.1、3.23.3节。

也可以看看:

于 2010-10-02T06:08:34.677 回答
10
char ch='"';

System.out.println(ch + "String" + ch);

或者

System.out.println('"' + "ASHISH" + '"');
于 2014-09-06T09:53:28.967 回答
7

转义字符串中的双引号:"\"Hello\""

有关该主题的更多信息(检查“转义序列”部分)

于 2010-10-02T06:08:16.917 回答
4
System.out.println("\"Hello\""); 
于 2010-10-02T06:09:59.300 回答
4

您也可以使用 unicode 字符来执行此操作

System.out.print('\u0022' + "Hello" + '\u0022');
于 2010-10-02T06:26:27.770 回答
4

添加实际的引号字符只是问题的一小部分;一旦你这样做了,你可能会面临真正的问题:如果字符串已经包含引号、换行符或其他不可打印的字符会怎样?

以下方法将处理所有事情:

public static String escapeForJava( String value, boolean quote )
{
    StringBuilder builder = new StringBuilder();
    if( quote )
        builder.append( "\"" );
    for( char c : value.toCharArray() )
    {
        if( c == '\'' )
            builder.append( "\\'" );
        else if ( c == '\"' )
            builder.append( "\\\"" );
        else if( c == '\r' )
            builder.append( "\\r" );
        else if( c == '\n' )
            builder.append( "\\n" );
        else if( c == '\t' )
            builder.append( "\\t" );
        else if( c < 32 || c >= 127 )
            builder.append( String.format( "\\u%04x", (int)c ) );
        else
            builder.append( c );
    }
    if( quote )
        builder.append( "\"" );
    return builder.toString();
}
于 2015-03-16T08:33:12.120 回答
2
System.out.println("\"Hello\"")
于 2010-10-02T06:08:20.613 回答
1

有两种简单的方法:

  1. \在双引号前使用反斜杠。
  2. 使用两个单引号代替双引号,例如 '' 代替"

例如:

System.out.println("\"Hello\"");                       
System.out.println("''Hello''"); 
于 2013-06-20T15:13:14.313 回答
1

请注意,在使用特定字符运行反斜杠时需要注意一些事项。

System.out.println("Hello\\\");

上面的输出将是:

你好\


System.out.println(" Hello\"  ");

上面的输出将是:

你好”

于 2015-01-17T06:26:03.950 回答
0

使用转义序列。

\"Hello\"

这将打印“你好”。

于 2010-10-02T13:04:09.857 回答
0

您可以使用 json 序列化工具来引用 java 字符串。

像这样:

public class Test{
   public static String quote(String a){
       return JSON.toJsonString(a)
   } 
}

如果输入是:hello输出将是:"hello"

如果你想自己实现这个功能:

它可能是这样的:

public static String quotes(String origin) {

        // 所有的 \ -> \\ 用正则表达为: \\ => \\\\" 再用双引号quote起来: \\\\ ==> \\\\\\\\"
        origin = origin.replaceAll("\\\\", "\\\\\\\\");
        //  " -> \" regExt: \" => \\\" quote to param: \\\" ==> \\\\\\\"
        origin = origin.replaceAll("\"", "\\\\\\\"");

        // carriage return: -> \n \\\n
        origin = origin.replaceAll("\\n", "\\\\\\n");

        // tab -> \t
        origin = origin.replaceAll("\\t", "\\\\\\t");
        return origin;
    }

上面的实现将引用字符串中的转义字符,但不包括"开头和结尾的。

上面的实现是不完整的。如果您需要其他转义字符,您可以添加它。

于 2022-02-20T12:00:12.177 回答