何时使用getNumericValue

时间:2017-12-31 13:58:23

标签: java

在下面的代码中,输出在两个循环中都是相同的。如果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

1 个答案:

答案 0 :(得分:2)

Character.getNumericValue旨在支持大于10的数字基数。例如,在十六进制中,字母A到F也是表示10到15的数字。Character.getNumericValue将此概念一直扩展到{ {1}}:A是10,B是11,C是12,...,Z是35(不区分大小写)。因此它适用于数字字母。据我所知,它还支持其他编号系统,因此你提到了罗马数字。

至于重点是什么,立即想到国际化。阿拉伯数字不是唯一的编号系统,如果你有一个UTF-16字符集和一个名为z的方法,那么它不应该仅限于英文编号系统