System.out.println("\1");
Ich dachte, dass es wegen der nicht erkannten Escape-Sequenz nicht kompiliert wurde.Was bedeutet " 1" in dieser Java-Zeichenfolge?
Was genau stellt "\1"
dar?
System.out.println("\1");
Ich dachte, dass es wegen der nicht erkannten Escape-Sequenz nicht kompiliert wurde.Was bedeutet " 1" in dieser Java-Zeichenfolge?
Was genau stellt "\1"
dar?
Es ist eine oktale Escape-Sequenz, wie in section 3.10.6 der JLS aufgeführt. So zum Beispiel:
String x = "\16";
entspricht:
String x = "\u000E";
(oktal 16 = Hex E.)
So \1
us U + 0001, die "Start der Position" Charakter.
Octal Escape-Sequenzen werden in meiner Erfahrung sehr selten in Java verwendet, und ich würde sie wo immer möglich vermeiden. Wenn ich ein Zeichen mit einer numerischen Escape-Sequenz angeben möchte, verwende ich immer \uxxxx
.
In Java ist es Wert nach
\u0001
Java ist eine jener Sprachen, die Sie überschwänglich schwören, wenn Sie die „zufällige“ Fehler getroffen hat. Wussten Sie, dass Java Zeichenausbrüche als * Literalzeichen * im Quellcode interpretiert? Nun, das ist kein Problem, bis Sie versuchen, einen Wagenrücklauf zu umgehen ... dann denkt Java, dass Sie einen Zeilenumbruch in Ihren Quellcode gesteckt haben, als Sie wirklich keinen wollten. –
@PP .: Es hängt davon ab, welche Zeichen Flucht du meinst. Zum Beispiel ist ein Kommentar von '// This \ n is okay' in Ordnung, aber' // This \ u000a is not 'wird nicht kompiliert. –
Ihre zweite Codezeile kompiliert nicht (zumindest auf meinem Rechner): * "String-Literal ist nicht korrekt durch ein Doppelzitat geschlossen" *. – sp00m