Konwertowanie znaków na liczby całkowite w Javie
Czy ktoś może mi wyjaśnić, co tu się dzieje:
char c = '+';
int i = (int)c;
System.out.println("i: " + i + " ch: " + Character.getNumericValue(c));
To drukujei: 43 ch:-1
. Czy to oznacza, że do konwersji muszę polegać na prymitywnych konwersjachchar
doint
? Jak więc mogę przekonwertowaćCharacter
doInteger
?
Edytować: tak, wiemCharacter.getNumericValue
zwraca-1
jeśli nie jest to wartość liczbowa i ma dla mnie sens. Pytanie brzmi: dlaczego powraca pierwotna konwersja43
?
Edit2: 43
jest ASCII dla+
, ale spodziewałbym się, że obsada się nie powiedziegetNumericValue
nie udało się. W przeciwnym razie oznacza to, że istnieją dwa semantyczne równoważne sposoby wykonywania tej samej operacji, ale z różnymi wynikami?