Wie kann ich Java -Druckzitate wie "Hallo" drucken lassen?
-
27-09-2019 - |
Frage
Wie kann ich Java drucken lassen? "Hello"
?
Wenn ich tippe System.out.print("Hello");
Die Ausgabe wird sein Hello
. Was ich suche, ist "Hello"
mit den Zitaten (""
).
Lösung
System.out.print("\"Hello\"");
Das Doppelzitat -Charakter muss mit einem Backslash in einem Java -String -Literal entkommen. Andere Charaktere, die eine spezielle Behandlung benötigen, sind:
- Kutschenrückgabe und Neue:
"\r"
und"\n"
- Backslash:
"\\\\"
- Single Zitat:
"\'"
- Horizontale Registerkarte und Formfutter:
"\t"
und"\f"
Die vollständige Liste der Java -String- und Charakter -Literalflüchtlinge finden Sie in der Abschnitt 3.10.6 der JLS.
Es ist auch erwähnenswert, dass Sie beliebige Unicode -Zeichen in Ihren Quellcode mit Unicode -Escape -Sequenzen der Form " uxxxx" einbeziehen können, wobei die "x" S hexadezimalen Ziffern sind. Diese unterscheiden sich jedoch von der gewöhnlichen Saite und dem Zeichen entkommen darin, dass Sie sie überall in einem Java -Programm verwenden können ... nicht nur in String- und Charakter -Literalen; Siehe JLS -Abschnitte 3.1, 3.2 und 3.3 Einzelheiten zur Verwendung von Unicode im Java -Quellcode.
Siehe auch:
Das Oracle Java -Tutorial: Zahlen und Zeichenfolgen - Zeichen
http://stackoverflow.com/questions/3034186/in-java-is-here-way-to-write-astring-litereral-without-having-to-cape-quote (Antwort: Nein)
Andere Tipps
char ch='"';
System.out.println(ch + "String" + ch);
Oder
System.out.println('"' + "ASHISH" + '"');
Flucht doppelte Zitate in Ihrer Saite: "\"Hello\""
Mehr zum Thema (Überprüfen Sie den Teil "Escape Sequenzen")
Sie können es auch mit einem Unicode -Zeichen tun
System.out.print('\u0022' + "Hello" + '\u0022');
System.out.println("\"Hello\"");
Das Hinzufügen der tatsächlichen Zitatzeichen ist nur ein winziger Teil des Problems. Sobald Sie dies getan haben, werden Sie wahrscheinlich dem eigentlichen Problem konfrontiert: Was passiert, wenn die Zeichenfolge bereits Zitate, Zeilenfutter oder andere undruckswerte 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();
}
System.out.println("\"Hello\"")
System.out.print("\"Hello\"");
Du suchst nach Fluchtsequenzen
Mehr sehen Liste der Escape -Sequenzen
Es gibt zwei einfache Methoden:
- Verwenden Sie Backslash
\
vor Doppelzitaten. - Verwenden Sie zwei einzelne Zitate anstelle von doppelten Zitaten wie
''
Anstatt von"
Zum Beispiel:
System.out.println("\"Hello\"");
System.out.println("''Hello''");
Verwenden Sie die Fluchtsequenz.
\"Hello\"
Dies wird "Hallo" drucken.
Beachten Sie, es gibt einige bestimmte Dinge zu beachten, wenn Sie Backslashes mit bestimmten Zeichen leiten.
System.out.println("Hello\\\");
Die obige Ausgabe ist:
Hallo
System.out.println(" Hello\" ");
Die obige Ausgabe ist:
Hallo"