Ну, Character.getNumericValue()
принимает Unicode , radix , case , culture :
'0' -> 0 // Same as number - '0'
'9' -> 9 // Same as number - '0'
'A' -> 10 // Hexadecimal 0xA == 10
'f' -> 15 // Hexadecimal 0xF == 15
'³' -> 3 // Unicode superscript 3
'⒇'-> 20 // Unicode enclosed alphanumeric 20
'۵' -> 5 // Persian digit 5
'*' -> -1 // Doesn't have any corresponding integer value
'⅚' -> -2 // Even if 5/6 fraction Unicode character is a number, it's not integer
, в то время как
number - '0'
- это только вычитание двух int
с.Вот почему Character.getNumericValue()
неизбежно медленнее (некоторые наносекунды, стоит ли оптимизировать?).Но, пожалуйста, обратите внимание, что в случаях 'A', 'f', '³', '*'
и т. Д. У вас будет неправильный ответ с кодом number - '0'
.