Character.getNumericValue () проблема

Я, вероятно, пропускаю что-то, но почему эти два числовых значения равны -1?

System.out.println(Character.getNumericValue(Character.MAX_VALUE));
System.out.println(Character.getNumericValue(Character.MIN_VALUE));

Возвраты:

-1
-1
9
задан 0xCursor 6 October 2018 в 22:38
поделиться

4 ответа

GetnumericValue () преобразует символы, которые фактически представляют номера (например, «нормальные» цифры 0-9, но и цифры в других сценариях) к их числовому значению. Персонажи, представленные символом.max_value и символ.min_value не имеют такого числового значения; Они не являются числами. И в соответствии с API DOC :

, если персонаж не имеет Числовое значение, то -1 возвращается.

13
ответ дан 4 December 2019 в 09:13
поделиться

.. только потому, что \ u0000 и '\ Ufffff` не представляют цифру и не имеют числового значения.

Я думаю, вы искали 16-битное значение Char, но для этого мы можем просто отличить:

int value = (int) Character.MAX_VALUE;
3
ответ дан 4 December 2019 в 09:13
поделиться

getNumericValue() применяется только к символам, которые представляют числа, например, цифры '0''9'. Для удобства, он также рассматривает буквы ASCII, как если бы они были цифрами в системе счисления base-36 (поэтому 'A' - это 10, а 'Z' - это 35).

Этот дурачит многих. Если вы хотите узнать значение символа Unicode, все, что вам нужно сделать, это прописать его в int:

System.out.println((int)Character.MAX_VALUE);
System.out.println((int)Character.MIN_VALUE);
4
ответ дан 4 December 2019 в 09:13
поделиться

Поскольку символ. Max_Value и символ.min_value не является числовым. Характер. GetnnumericValue (CHAR) Возвращает -1 Когда параметр не является символом, который отображает номер.

Числовые символы (0-9), буквыные символы (A-Z) и другие символы номера Unicode связаны со значениями. Я не знаю всех других персонажей, которые сопоставлены. Но многие персонажи просто вернутся -1.

3
ответ дан 4 December 2019 в 09:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: