Ist \ u65549 ein gültiger Java-Bezeichner?

8

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?

    
Hackerdarshi 04.04.2016, 13:00
quelle

2 Antworten

8
%Vor%

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:

%Vor%

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' ).

    
Andy Turner 04.04.2016, 13:10
quelle
2

\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.

    
Berger 04.04.2016 13:03
quelle

Tags und Links