Может кто-нибудь объяснит мне, что здесь происходит:
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 не удалось. В противном случае это означает, что существуют два семантических эквивалентных способа выполнения одной и той же операции, но с разными результатами?