如何解决Java中char的数值
我正在使用Java中的字符。我期望代码中的两个打印语句具有相同的结果:
char x = 'A';
System.out.println(Character.getNumericValue(x));
System.out.println(0 + x);
我在这里想念什么?为什么第一行给出10,第二行给出65?
解决方法
javadoc for Character.getNumericValue
指出:
返回指定的Unicode字符表示的int值。
0'至'9'返回0至9,因为它们代表这些值。 Javadoc明确说明了这一点
字母AZ的大小写(从'\ u0041'到'\ u005A'),小写(从'\ u0061'到'\ u007A')以及全角变体(从'\ uFF21'到'\ uFF3A'和' \ uFF41'至'\ uFF5A')格式的数值介于10到35之间。
这很好,因为通常这样表示不同的基数,例如base-16(十六进制)。
System.out.println(0 + x);
只会为您提供字符的数字值,该值遵循Unicode UTF-16编码,这就是Java char
值所代表的含义。
Character.getNumericValue(x):返回指定Unicode字符的int值。 System.out.println(0 + x); :返回指定字符的ASCII码
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。