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?

questionAnswers(6)

yourAnswerToTheQuestion