Więc natknąłem coś, co pomylić mnie kiedy rzucając byte
do char
, zwykle Chciałbym to zrobić:Składnia Java - znak plusa plus po rzucie jest ważny?
for (byte b:"ABCDE".getBytes()) {
System.out.println((char)b);
}
Które będzie drukować
A
B
C
D
E
przypadkowo zostawiła +
między (char)
i b
i uzyskałem ten sam wynik: !?
tak:
for (byte b:"ABCDE".getBytes()) {
System.out.println((char) + b);
}
Dlaczego właściwie tak się dzieje?
Czy zasadniczo robię (char)(0x00 + b)
? Ponieważ
System.out.println((char) - b);
daje inny wynik.
Uwaga: Użycie wersji Java 1.8.0_20
Bezpośrednio przesyłając bajty do znaków, ignorujesz [kodowanie znaków] (http://en.wikipedia.org/wiki/Character_encoding). – Jesper