我有一个角色:
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)
Sau*_*aul 16
获取char值的ASCII码有一个主要问题.
在适当的意义上,它无法完成.
这是因为char有一系列的65535ASCII被限制128.有大量的字符根本没有ASCII表示.
正确的方法是使用Unicode代码点,它是Java Universe中字符的标准数字等价物.
值得庆幸的是,Unicode是ASCII的完整超集.这意味着拉丁字符的Unicode数字等于它们的ASCII字母.例如,A在Unicode中U+0041或65以十进制表示.相比之下,ASCII没有99%的char-s映射.长话短说:
char ch = 'A';
int cp = String.valueOf(ch).codePointAt(0);
Run Code Online (Sandbox Code Playgroud)
此外,由于历史原因,16位基元 char实际上表示代码单元而不是字符,因此限于基本多语言平面.超出它的实体需要处理固定比特长度限制的Character 对象.