Ich habe diese Aussagen:
%Vor%Dies kompiliert perfekt. Und gibt
aus %Vor%Aber:
%Vor%Ausgaben
%Vor%Ich habe etwas zu diesem Thema recherchiert. Ich lese die Dokumentation und es heißt:
Diese Methode kann keine zusätzlichen Zeichen verarbeiten. Um alle Unicode-Zeichen einschließlich Zusatzzeichen zu unterstützen, verwenden Sie die
isJavaIdentifierStart(int)
-Methode.
Dann habe ich das getan:
%Vor%Aber selbst das druckt:
%Vor% Bedeutet dies also, dass Java verwirrt ist, weil \u65549
ein Bezeichner ist?
Hier ist \u65549
der Name einer Variablen, die zufällig auch den Wert 9
enthält. Es sollte (und tut) dasselbe tun, als ob Sie geschrieben hätten:
welches false
ausgibt, da Sie keine Java-Kennung haben können, die mit einem Leerzeichen beginnt ( \u0009
ist der Codepunkt für HORIZONTAL TAB, '\t'
).
\u65549
wird als Unicode-Zeichen \u6554
interpretiert, gefolgt vom Zeichen 9
.
Dies ist eine gültige Syntax in String
.
Ansonsten ist \u65549
kein gültiger Unicode-Bezeichner.
Ein String nimmt nur den gültigen Teil ( 4
Zeichen im hexadezimalen Bereich), wenn er auf ein Unicode-Präfix (% co_de%) trifft, so dass nur der gültige Bezeichner-Teil verwendet wird und ein gültiges Zeichen erhalten wird.
Tags und Links java identifier