在输入字处获取ASCII值

时间:2011-09-16 11:24:39

标签: java

我有一个角色:

 char ch='A'

给我转换char to ASCII的方法 或返回ASCII NUMBER的方式。

输出:65

6 个答案:

答案 0 :(得分:42)

char ch='A';

System.out.println((int)ch);

答案 1 :(得分:16)

获取char值的ASCII代码存在一个主要问题。

在适当的意义上,它无法完成。

这是因为char的范围为65535,而ASCII仅限于128。有大量的字符根本没有ASCII表示。

正确的方法是使用Unicode code point,它是Java世界中字符的标准数字等价物。

值得庆幸的是,Unicode是ASCII的完整超集。这意味着拉丁字符的Unicode数字等于它们的ASCII字母。例如,Unicode中的A为十进制U+004165。相比之下,ASCII没有99%的char-s映射。长话短说:

char ch = 'A';
int cp = String.valueOf(ch).codePointAt(0);

此外,16位原语 char实际上代表代码单元,而不是字符,因此仅限于 Basic Multilingual Plane < / em>,用于historical reasons。超出它的实体需要Character 对象来处理固定的位长限制。

答案 2 :(得分:4)

char实际上是一种数字数据类型 - 例如,您可以将{1}添加到int。它是无符号short(16位)。在这方面,您可以将输出转换为int以获取数值。

但是你需要多考虑一下你在问什么 - 并非所有字符都是ASCII值。例如,您对â

的期望是什么?

而且,你为什么要这个?在这个时代你应该考虑使用Unicode,而不是ASCII。如果你让人们知道你的目标是什么,以及你打算如何使用这个返回值,我们几乎可以肯定地告诉你一个更好的方法来实现它。

答案 3 :(得分:2)

char(带小写c)是一种数字类型。它已经保存了char的ascii值。只需将其强制转换为整数,将其显示为数值而不是文本值:

System.out.println("char " + ch + " has the following value : " + (int) ch);

答案 4 :(得分:2)

char a='a';
char A='A';
System.out.println((int)a +" "+(int)A);

Output:
97 65

答案 5 :(得分:1)

简单地做

int a = ch

(这也与android无关)