Wie kann ich Java drucken "Hello"
?
Wenn ich tippe System.out.print("Hello");
die Ausgabe wird sein Hello
. Was ich suche ist "Hello"
mit den Anführungszeichen (""
).
Roy
Wie kann ich Java drucken "Hello"
?
Wenn ich tippe System.out.print("Hello");
die Ausgabe wird sein Hello
. Was ich suche ist "Hello"
mit den Anführungszeichen (""
).
Stefan C
System.out.print(""Hello"");
Das doppelte Anführungszeichen muss in einem Java-String-Literal mit einem Backslash maskiert werden. Andere Zeichen, die einer besonderen Behandlung bedürfen, sind:
"r"
und "n"
"\"
"'"
"t"
und "f"
Die vollständige Liste der Java-String- und Zeichenliteral-Escapes finden Sie in der Abschnitt 3.10.6 der JLS.
Es ist auch erwähnenswert, dass Sie beliebige Unicode-Zeichen in Ihren Quellcode einfügen können, indem Sie Unicode-Escape-Sequenzen des Formulars verwenden uxxxx
bei dem die x
s sind Hexadezimalziffern. Diese unterscheiden sich jedoch von gewöhnlichen Zeichenfolgen- und Zeichen-Escapes dadurch, dass Sie sie überall in einem Java-Programm verwenden können … nicht nur in Zeichenfolgen- und Zeichenliteralen; siehe JLS-Abschnitte 3.1, 3.2 und 3.3 für Details zur Verwendung von Unicode im Java-Quellcode.
Siehe auch:
Das Oracle-Java-Tutorial: Zahlen und Zeichenketten – Zeichen
Gibt es in Java eine Möglichkeit, ein Zeichenfolgenliteral zu schreiben, ohne Anführungszeichen maskieren zu müssen? (Antwort: Nein)
Gibt es einen Weg ohne Backslashes in Java wie dreifache Anführungszeichen in Python?
– Lakindu Akash
25. Mai 18 um 20:06 Uhr
Nein gibt es nicht.
– Stefan C
25. Mai 18 um 23:34 Uhr
Tatsächlich gibt es ab Java 13 (September 2019) Unterstützung für [JEP 355](openjdk.java.net/jeps/355 Textblöcke, die den dreifachen Anführungszeichen in Python ähneln.
– Stefan C
11. Mai 21 um 9:59 Uhr
Akmischra
char ch=""";
System.out.println(ch + "String" + ch);
Oder
System.out.println('"' + "ASHISH" + '"');
Doppelte Anführungszeichen in Ihrer Zeichenfolge maskieren: ""Hello""
Mehr zum Thema (überprüfen Sie den Abschnitt „Escape-Sequenzen“)
Sadananda Salam
Sie können dies auch mit einem Unicode-Zeichen tun
System.out.print('u0022' + "Hello" + 'u0022');
Das Hinzufügen der eigentlichen Anführungszeichen ist nur ein winziger Bruchteil des Problems; Sobald Sie das getan haben, stehen Sie wahrscheinlich vor dem eigentlichen Problem: Was passiert, wenn die Zeichenfolge bereits Anführungszeichen oder Zeilenvorschübe oder andere nicht druckbare Zeichen enthält?
Die folgende Methode kümmert sich um alles:
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();
}
Wenn Sie dies tun müssen, ist eine (normalerweise) bessere Alternative dazu, eine vorhandene Bibliotheksmethode (z. B. Apache Commons) zu verwenden, um das Escaping / De-Escaping durchzuführen. Oder nutzen Sie die Fähigkeit einer API, dies zu tun; zB JDBC PreparedStatement
das URL
und URI
Konstrukteure.
– Stefan C
25. Mai 18 um 23:44 Uhr
@StephenC ja, natürlich. Die Nützlichkeit dieser Antwort liegt nur in der Ergänzung des von Ihnen erwähnten “(normalerweise)”. Außerdem kann der Code einen pädagogischen Wert haben.
– Mike Nakis
26. Mai 18 um 4:04 Uhr
TylerH
System.out.println(""Hello"");
Wenn Sie dies tun müssen, ist eine (normalerweise) bessere Alternative dazu, eine vorhandene Bibliotheksmethode (z. B. Apache Commons) zu verwenden, um das Escaping / De-Escaping durchzuführen. Oder nutzen Sie die Fähigkeit einer API, dies zu tun; zB JDBC PreparedStatement
das URL
und URI
Konstrukteure.
– Stefan C
25. Mai 18 um 23:44 Uhr
@StephenC ja, natürlich. Die Nützlichkeit dieser Antwort liegt nur in der Ergänzung des von Ihnen erwähnten “(normalerweise)”. Außerdem kann der Code einen pädagogischen Wert haben.
– Mike Nakis
26. Mai 18 um 4:04 Uhr
mdml
System.out.println(""Hello"")
.
Mögliches Duplikat von In Java, gibt es eine Möglichkeit, ein String-Literal zu schreiben, ohne Anführungszeichen zu maskieren?
– Eimer
16. Januar 14 um 17:57 Uhr
Mögliches Duplikat von How to enter quotes in a Java string?
– Fabian
27. Mai 16 um 14:12 Uhr