So stieß ich auf etwas, das mich verwirrt, wenn ein byte
zu char
Gießen, in der Regel würde ich dies tun:Java-Syntax - zusätzliches Pluszeichen nach der Umwandlung ist gültig?
for (byte b:"ABCDE".getBytes()) {
System.out.println((char)b);
}
Welche
A
B
C
D
E
ich aus Versehen eine +
zwischen dem (char)
auszudrucken wird und b
und bekam die gleiche Ergebnis !?
Wie so:
for (byte b:"ABCDE".getBytes()) {
System.out.println((char) + b);
}
Warum genau ist das passiert?
Mache ich im Wesentlichen (char)(0x00 + b)
? Weil
System.out.println((char) - b);
ergibt ein anderes Ergebnis.
Hinweis: Die Verwendung von Java-Version 1.8.0_20
Indem Sie Bytes direkt in Zeichen umwandeln, ignorieren Sie [Zeichenkodierung] (http://en.wikipedia.org/wiki/Character_encoding). – Jesper