在输入字处获取ASCII值
我有一个角色:
char ch='A'
给我一个将char to ASCII
转换char to ASCII
或返回ASCII NUMBER
。
产量: 65
char ch='A'; System.out.println((int)ch);
获取char
值的ASCII代码有一个主要问题。
在适当的意义上,它无法完成。
这是因为char
的范围是65535
而ASCII的范围是128
。 有大量的字符根本没有ASCII表示。
正确的方法是使用Unicode代码点 ,它是Java Universe中字符的标准数字等价物。
值得庆幸的是,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
实际上表示代码单元而不是字符,因此限于基本多语言平面 。 超出它的实体需要处理固定比特长度限制的Character 对象 。
char
实际上是一种数字数据类型 – 例如,您可以将一个添加到int
。 它是无符号short
(16位)。 在这方面,您可以将输出转换为int
以获取数值。
但是,您需要更多地考虑一下您所要求的内容 – 并非所有字符都是ASCII值。 你期望什么输出â
,例如,或者你
?
而且,你为什么要这个? 在这个时代你应该考虑使用Unicode,而不是ASCII。 如果你让人们知道你的目标是什么,以及你打算如何使用这个返回值,我们几乎可以肯定地告诉你一个更好的方法来实现它。
char(小写c)是一种数字类型。 它已经保存了char的ascii值。 只需将其强制转换为整数,将其显示为数值而不是文本值:
System.out.println("char " + ch + " has the following value : " + (int) ch);
char a='a'; char A='A'; System.out.println((int)a +" "+(int)A); Output: 97 65
干脆做
int a = ch
(这也与android无关)