Java中字符的数值

Java中字符的数值,java,char,numeric,Java,Char,Numeric,我在java中与chars一起工作。我希望代码中的两个print语句得到相同的结果: char x = 'A'; System.out.println(Character.getNumericValue(x)); System.out.println(0 + x); 我错过了什么?为什么第一行给出10,第二行给出65?Character.getNumericValuex:返回指定Unicode字符的int值。 System.out.println0+x;:返回指定字符的ASCII码,状态为:

我在java中与chars一起工作。我希望代码中的两个print语句得到相同的结果:

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

我错过了什么?为什么第一行给出10,第二行给出65?

Character.getNumericValuex:返回指定Unicode字符的int值。 System.out.println0+x;:返回指定字符的ASCII码,状态为:

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

“0”到“9”返回0到9,因为这些是它们表示的值。Javadoc明确解释了这一点

大写“\u0041”到“\u005A”、小写“\u0061”到“\u007A”以及全宽变体“\uFF21”到“\uFF3A”和“\uFF41”到“\uFF5A”形式的字母A-Z的数值范围为10到35

这很好,因为这就是不同的基数,如基数16十六进制,通常是如何表示的


System.out.println0+x;将只为您提供字符的数值,该数值遵循Unicode UTF-16编码,因为这是Java字符值表示的内容。

您是否阅读了JavaDock获取getNumericValue的内容。如果是的话,你到底有什么问题需要理解?这是否回答了你的问题?System.out.println0+x是一个void函数,不返回任何内容。x是字符a,请自己尝试,System.out.println0+x==0+65@Hazel打印和返回不一样。