在下面的代码中,输出在两个循环中都是相同的。如果getNumericValue
是一个数字,则char
实际上会返回char
的数字值,因此0..9
会返回int
值,例如。 '0'->0
对于其他ascii代码,它会返回代码,例如'a'->10
。
将此方法用于数字以外的字符(如示例代码中)是否有任何意义?
任何用例?我想不出任何其他用例除了获得数字值形式char。
char ch;
int i =1;
for( ch = 'a'; ch <= 'z' ; i++, ch++ )
System.out.println(ch+" "+i);
i=1;
for( int j=Character.getNumericValue('a'); j<= Character.getNumericValue('z'); j++,i++ )
System.out.println(i+ " "+j);
EDIT 例如,只有非常重要的例子,字符'\ u216C'(罗马数字五十)将返回一个值为50的int
答案 0 :(得分:2)
Character.getNumericValue
旨在支持大于10的数字基数。例如,在十六进制中,字母A到F也是表示10到15的数字。Character.getNumericValue
将此概念一直扩展到{ {1}}:A是10,B是11,C是12,...,Z是35(不区分大小写)。因此它适用于数字和字母。据我所知,它还支持其他编号系统,因此你提到了罗马数字。
至于重点是什么,立即想到国际化。阿拉伯数字不是唯一的编号系统,如果你有一个UTF-16字符集和一个名为z
的方法,那么它不应该仅限于英文编号系统