Java 何时使用getNumericValue
在下面的代码中,两个循环的输出是相同的。Java 何时使用getNumericValue,java,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++
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);
charch;
int i=1;
for(ch='a';ch字符。getNumericValue
设计用于支持大于10的基数。例如,在十六进制中,字母a到F也是表示10到15的数字。字符。getNumericValue
将此概念一直扩展到z
:a是10,B是11,C是12,…,z是35(不区分大小写).所以它适用于数字和字母。据我从文档中所知,它还支持其他编号系统,因此您提到的罗马数字
至于重点是什么,我马上想到了国际化。阿拉伯数字并不是唯一的编号系统,如果你有一个UTF-16字符集和一个名为character.getNumericValue
的方法,那么它不应该仅仅局限于英语编号系统,这是有道理的。什么原因还不太清楚你的意思是“有任何意义”。如果记录的行为符合你的要求,你应该使用该方法;否则,不要使用它。或者,你是在问,与(你正在考虑的其他方法)相反,使用该方法是否有意义?@AndyTurner我想知道这种方法的意义是不是可以对chars
和Character.digit
使用一元数字提升。数字提升肯定不是一回事,因为它会产生不同的值。对于代码示例中的循环,不需要getNumericValue。实际应用可能很少getNumericValue方法的示例。@VGR这些示例实际上就是我在这里要介绍的,您能提供一些吗?那么Character.digit
?编辑Character.getNumericValue('五')
返回-1
所以它不起作用了?从我所知道的字符来看。digit
表示我在第一段中提到的“计算机”数字,即0-9和A-F。字符。getNumericValue
表示“真实世界”数字,因此不仅需要支持多个基数,还需要支持多个数字系统。我补充说,作为一个概念性的例子,我没有实际测试它。我想我应该删除它。