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