Così mi sono imbattuto in qualcosa che mi ha confuso quando lancia un byte
a char
, di solito farei questo:Sintassi Java: il segno extra plus dopo il cast è valido?
for (byte b:"ABCDE".getBytes()) {
System.out.println((char)b);
}
che stamperà fuori
A
B
C
D
E
ho accidentalmente lasciato un +
tra il (char)
e b
e ottenuto il risultato stesso !?
Come così:
for (byte b:"ABCDE".getBytes()) {
System.out.println((char) + b);
}
Perché esattamente sta succedendo questo?
Sto essenzialmente facendo (char)(0x00 + b)
? Perché
System.out.println((char) - b);
produce un risultato diverso.
Nota: L'uso di Java 1.8.0_20 versione
Mediante il casting diretto di byte in caratteri, si ignora la [codifica caratteri] (http://en.wikipedia.org/wiki/Character_encoding). – Jesper