【问题标题】:Numeric value of char in Java [duplicate]Java中char的数值[重复]
【发布时间】:2020-08-15 08:08:20
【问题描述】:

我正在使用 java 中的字符。我期望代码中的两个打印语句得到相同的结果:

char x = 'A';
System.out.println(Character.getNumericValue(x));
System.out.println(0 + x);

我在这里缺少什么?为什么第一行给出 10 而第二行给出 65?

【问题讨论】:

标签: java char numeric


【解决方案1】:

javadoc for Character.getNumericValue 声明:

返回指定 Unicode 字符表示的 int 值。

0' to '9' 返回 0 到 9,因为这些是它们所代表的值。 Javadoc 明确说明

大写字母 A-Z('\u0041' 到 '\u005A')、小写字母('\u0061' 到 '\u007A')和全角变体('\uFF21' 到 '\uFF3A' 和 ' \uFF41' 到 '\uFF5A') 形式的数值从 10 到 35。

这很好,因为这就是通常表示不同基数的方式,例如 base-16(十六进制)。

System.out.println(0 + x); 只会为您提供字符的数值,它遵循 Unicode UTF-16 编码,因为这就是 Java char 值所代表的含义。

【讨论】:

    【解决方案2】:

    Character.getNumericValue(x) :返回指定Unicode字符的int值。 System.out.println(0 + x); :返回指定字符的ASCII码

    【讨论】:

    • System.out.println(0 + x) 是一个 void 函数,不返回任何内容。
    • x是字符A,你自己试试吧,System.out.println(0 + x)== 0+65
    • @Hazel 打印不等于退货。
    猜你喜欢
    • 2015-01-30
    • 2013-10-03
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2016-01-20
    • 1970-01-01
    相关资源
    最近更新 更多