在输入字处获取ASCII值

Nik*_*tel 24 java

我有一个角色:

 char ch='A'
Run Code Online (Sandbox Code Playgroud)

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

输出: 65

Oli*_*rth 42

char ch='A';

System.out.println((int)ch);
Run Code Online (Sandbox Code Playgroud)

  • @Saul:的确如此.但OP正在询问如何获取字符的ASCII码,这意味着他感兴趣的字符将具有ASCII码. (5认同)
  • `char`的范围是65535而``ASCII`被限制为128.有大量的字符根本没有`ASCII`表示.使用`int`误导人们认为Unicode字符和`ASCII`代码之间存在一对一的对应关系. (2认同)

Sau*_*aul 16

获取char值的ASCII码有一个主要问题.

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

这是因为char有一系列的65535ASCII被限制128.有大量的字符根本没有ASCII表示.

正确的方法是使用Unicode代码点,它是Java Universe中字符的标准数字等价物.

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

char ch = 'A';
int cp = String.valueOf(ch).codePointAt(0);
Run Code Online (Sandbox Code Playgroud)

此外,由于历史原因,16位基元 char实际上表示代码单元而不是字符,因此限于基本多语言平面.超出它的实体需要处理固定比特长度限制的Character 对象.