我有一个角色:
char ch='A'
给我转换char to ASCII
的方法
或返回ASCII NUMBER
的方式。
输出:65
答案 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+0041
或65
。相比之下,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无关)