Gibt es in Java einen Unterschied zwischen einfachen und doppelten Anführungszeichen?
101
Verwenden Sie einfache Anführungszeichen für Literale char
und doppelte Anführungszeichen für Literale String
wie folgt:
char c = 'a';
String s = "hello";
Sie können nicht anders herum verwendet werden (wie zum Beispiel in Python).
int
in solchen Kontexten automatisch verwendet . Also muss es nicht seinchar
. Verdiene ein paar Downvotes ... simpel.Ein Zeichen ist ein einzelnes UTF-16-Zeichen, dh ein Buchstabe, eine Ziffer, ein Interpunktionszeichen, ein Tabulator, ein Leerzeichen oder ähnliches.
Ein Zeichenliteral ist entweder ein einzelnes Zeichen, das in solchen einfachen Anführungszeichen eingeschlossen ist
oder eine Escape-Sequenz oder sogar eine Unicode-Escape-Sequenz:
Es ist anzumerken, dass Unicode-Escape-Sequenzen sehr früh während der Kompilierung verarbeitet werden und daher die Verwendung von '\ u00A' zu einem Compilerfehler führt. Für spezielle Symbole ist es besser, Escape-Sequenzen zu verwenden, dh '\ n' anstelle von '\ u00A'.
Da doppelte Anführungszeichen für verwendet werden
String
, müssen Sie eine "doppelte Anführungszeichen-Escape-Sequenz" (\"
) in Zeichenfolgen verwenden, an der die Zeichenfolge sonst beendet würde.Zum Beispiel:
Es ist nicht erforderlich, das doppelte Anführungszeichen in einfache Anführungszeichen zu setzen.
Die folgende Zeile ist in Java legal:
quelle
Betrachten wir diese Codezeilen (Java):
1) Die erste Zeile ist die Verkettung von
H
undA
das führt zuHA
(String-Literal)2) Zweitens addieren wir die Werte von zwei Zeichen, die gemäß der ASCII-Tabelle
H
= 72 unda
= 97 bedeuten, dass wir hinzufügen, dass72+97
es so ist('H'+'a')
.3) Betrachten wir einen anderen Fall, in dem wir hätten:
In diesem Fall haben wir es mit der Verkettung von String zu tun
A
und char zuN
, die dazu führen wirdAN
.quelle
Einfaches Anführungszeichen kennzeichnet Zeichen und doppeltes Anführungszeichen kennzeichnet Zeichenfolge.
char c = 'c';
'c' -----> c ist ein Zeichen
String s = "Stackoverflow";
"stackoverflow" ------> stackoverflow ist eine Zeichenfolge (dh Sammlung, wenn Zeichen)
quelle