Warum beendet System.out.println () den ASCII-Code Null?

8

Probieren Sie diesen Code aus -

%Vor%

Die Ausgabe ist -

%Vor%

Warum endet System.out.println () bei ASCII-Code Null?

Ich habe dies in JCreator LE unter Windows 7 versucht.

    
CodeBlue 18.06.2012, 15:28
quelle

2 Antworten

18

Es hängt davon ab, was Ihre Konsole tut (oder was sonst noch behandelt wird, System.out ). System.out wird alle Informationen gut verbreiten, und wenn Ihre Konsole U + 0000 keine besondere Bedeutung beilegt, dann wird alles gut. Viele Benutzeroberflächensteuerelemente werden dies jedoch als abschließendes Zeichen behandeln. Dies ist nicht der "Fehler" von Java - es ist die Benutzeroberflächensteuerung selbst.

(Nur zu Referenzzwecken ist die Ausführung dieses Codes in einer Windows-Eingabeaufforderung unter Windows 7 für mich in Ordnung.)

    
Jon Skeet 18.06.2012, 15:34
quelle
2

In C / C ++ - Zeichenfolgen wird das Ende der Zeichenfolge durch die Position des abschließenden Nullzeichens bestimmt (das Zeichen mit dem Wert 0, wie in Ihrem Fall). Höchstwahrscheinlich übergibt der Aufruf System.out.println() die Zeichenfolge wortwörtlich an das Betriebssystem, das die Zeichenfolge als Null-Zeichen betrachtet und nur bis zu diesem Punkt druckt

    
Attila 18.06.2012 15:35
quelle

Tags und Links