Java获取中文ASCII码
ASCII码是美国信息交换标准代码(American Standard Code for Information Interchange)的简称,它是一种将字符转换为数字的编码方式。在Java中,获取字符的ASCII码可以通过几种方式实现。本文将介绍三种常见的方法,并提供相应的代码示例。
1. 使用charAt()
方法获取字符的ASCII码
Java中的String
类提供了charAt()
方法,可以用于获取字符串中指定位置的字符。结合强制类型转换,可以将字符转换为ASCII码。
代码示例:
public class CharToAsciiExample {
public static void main(String[] args) {
String str = "中国";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
int ascii = (int) c;
System.out.println("字符:" + c + " ASCII码:" + ascii);
}
}
}
运行上述代码,将输出以下结果:
字符:中 ASCII码:20013
字符:国 ASCII码:22269
在上述代码中,我们首先定义了一个字符串str
,其中包含了中文字符。然后,使用for
循环逐个获取字符串中的字符。在每次循环中,我们使用charAt()
方法获取字符,并将其强制类型转换为整型,得到相应的ASCII码。
2. 使用getBytes()
方法获取字符的ASCII码
Java中的String
类还提供了getBytes()
方法,可以将字符串转换为字节数组。通过指定字符集为"US-ASCII",可以获得字符串中每个字符的ASCII码。
代码示例:
import java.io.UnsupportedEncodingException;
public class StringToAsciiExample {
public static void main(String[] args) {
try {
String str = "中国";
byte[] bytes = str.getBytes("US-ASCII");
for (byte b : bytes) {
System.out.println("ASCII码:" + b);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
运行上述代码,将输出以下结果:
ASCII码:63
ASCII码:63
在上述代码中,我们首先定义了一个字符串str
,其中包含了中文字符。然后,使用getBytes()
方法将字符串转换为字节数组。由于ASCII码只能表示0-127的字符,对于无法表示的字符,将使用问号'?'进行替代。
3. 使用Character.codePointAt()
方法获取字符的Unicode码
Unicode是一种字符集,包括了世界上几乎所有的字符。Java中的Character
类提供了codePointAt()
方法,可以用于获取指定位置的字符的Unicode码。通过强制类型转换,可以将Unicode码转换为ASCII码。
代码示例:
public class UnicodeToAsciiExample {
public static void main(String[] args) {
String str = "中国";
int[] codePoints = str.codePoints().toArray();
for (int codePoint : codePoints) {
char c = (char) codePoint;
int ascii = (int) c;
System.out.println("字符:" + c + " ASCII码:" + ascii);
}
}
}
运行上述代码,将输出以下结果:
字符:中 ASCII码:20013
字符:国 ASCII码:22269
在上述代码中,我们首先定义了一个字符串str
,其中包含了中文字符。然后,使用codePoints()
方法将字符串转换为Unicode码的流,并将其转换为整型数组。接下来,使用for
循环逐个获取Unicode码,并将其强制类型转换为字符和整型ASCII码。
总结
通过使用Java提供的不同方法,我们可以方便地获取中文字符的ASCII码。在本文中,我们介绍了三种常见的方法,并提供了相应的代码示例。根据具体需求,选择合适的方法进行字符转换即可。
甘特图
下面是使用mermaid语法表示的甘特图,展示了获取中文ASCII码的过程。
gantt
dateFormat YYYY-MM-DD
title 获取中文ASCII码的过程
section 获取字符
字符 :a1, 2022-11-01, 1d
字符 :a2, after