Может кто-нибудь объяснит мне, что здесь происходит:
char c = '+';
int i = (int)c;
System.out.println("i: " + i + " ch: " + Character.getNumericValue(c));
Отпечатает i: 43 ch:-1
. Означает ли это, что я должен полагаться на примитивные преобразования для преобразования char
в int
? Итак, как я могу преобразовать Character
в Integer
?
Изменить: Да. Я знаю, что Character.getNumericValue
возвращает -1
, если это не числовое значение, и это имеет смысл для меня. Возникает вопрос: почему примитивные преобразования возвращают 43
?
Edit2: 43
- это ASCII для +
, но я ожидаю, что приведение не получится, как будто getNumericValue
не удалось. В противном случае это означает, что существуют два семантических эквивалентных способа выполнения одной и той же операции, но с разными результатами?