为什么cast(int)可以正确地将符号的字符转换为int,但是" Character.getNumericValue(' someSymbolCharValue');"可'?吨
E.g。 " Character.getNumericValue('?');" 将返回-1,即使char可以显示为int" (int)'?' "它将返回63
答案 0 :(得分:2)
字符的“数值”不是其ASCII / Unicode索引值。 Character.getNumericValue
method将尝试通过应用字符的数字含义将char
转换为int
:
返回指定的Unicode字符表示的int值。例如,字符'\ u216C'(罗马数字50)将返回值为50的int。 字母AZ以大写字母('\ u0041'到'\ u005A'),小写字母('\ u0061'到'\ u007A')和全宽变体('\ uFF21'到'\ uFF3A'和'\ uFF41')通过'\ uFF5A')表单具有从10到35的数值。这与Unicode规范无关,Unicode规范不会为这些char值赋值。
如果字符没有数字值,则返回-1。如果字符的数值不能表示为非负整数(例如,小数值),则返回-2。
预计getNumericValue
不同意将char
转换为int
。