在输入字处获取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中的AU+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无关)