2014-10-03 58 views
1

爲什麼casting(int)可以將符號的字符轉換爲int,但是「Character.getNumericValue('someSymbolCharValue');」不能?轉換字符(Casting vs. .getNumericValue)

E.g. 「Character.getNumericValue('?');」即使char可以用「(int)'?'表示爲int,將返回-1。「它將返回63

+0

'Character.getNumericValue('?')'!= cast。 – Smutje 2014-10-03 19:27:36

回答

1

一個字符的」數字值「不是它的ASCII/Unicode索引值。該Character.getNumericValue method將嘗試通過將人物的數字含義的charint轉換:

返回指定的Unicode字符表示的int值。例如,字符'\ u216C'(羅馬數字50)將返回一個值爲50的int。 字母AZ的大寫('\ u0041'到'\ u005A'),小寫字母('\ u0061'通過'\ u007A')和全寬變體('\ uFF21'到'\ uFF3A'和'\ uFF41'到'\ uFF5A')形式的數值從10到35.這與Unicode規範無關,不會爲這些char值分配數值。

如果該字符沒有數字值,則返回-1。如果字符的數值不能表示爲非負整數(例如,小數值),則返回-2。

預計getNumericValue不會與鑄造charint同意。