Java 字符串转换为 Unicode

在 Java 中,字符是以 Unicode 编码形式进行存储和处理的。Unicode 是一个标准的字符编码集,它包含了世界上大多数字符的编码。当需要将字符串转换为 Unicode 编码时,可以使用 Java 的内置函数或自定义方法来实现。

本文将介绍如何在 Java 中将字符串转换为 Unicode,并提供相关的代码示例。

什么是 Unicode

Unicode 是一个国际标准,用于给各种字符集中的每个字符分配一个唯一的编号。它可以表示世界上大多数语言的字符,包括拉丁字母、中文汉字、日文假名等。

Unicode 使用 U+XXXX 的格式来表示一个字符的编码,其中 XXXX 是一个十六进制数。例如,字母 A 的 Unicode 编码是 U+0041,汉字 "你" 的 Unicode 编码是 U+4F60。

Java 中的字符串和 Unicode

在 Java 中,字符串是由字符组成的,每个字符占用两个字节的内存空间。Java 内部使用 Unicode 编码来表示字符,因此可以直接使用 Unicode 编码来表示字符串。

Java 中的字符串类型是 String,可以使用双引号将字符序列括起来创建字符串,例如:

String str = "Hello, World!";

字符串转换为 Unicode

要将字符串转换为 Unicode 编码,可以使用 String 类的 toCharArray() 方法将字符串转换为字符数组,然后遍历字符数组,使用 Integer.toHexString() 方法将每个字符转换为其对应的 Unicode 编码。

下面是一个将字符串转换为 Unicode 编码的示例代码:

public class UnicodeConverter {
    public static String convertToUnicode(String str) {
        StringBuilder unicode = new StringBuilder();
        
        char[] chars = str.toCharArray();
        for (char ch : chars) {
            unicode.append("\\u").append(Integer.toHexString(ch));
        }
        
        return unicode.toString();
    }
    
    public static void main(String[] args) {
        String str = "Hello, World!";
        String unicodeStr = convertToUnicode(str);
        System.out.println(unicodeStr);
    }
}

运行上述代码,输出结果为:

\u0048\u0065\u006c\u006c\u006f\u002c\u0020\u0057\u006f\u0072\u006c\u0064\u0021

上述代码中,convertToUnicode() 方法将字符串转换为 Unicode 编码。首先创建一个 StringBuilder 对象 unicode,用于存储转换后的 Unicode 编码。然后,将字符串转换为字符数组,遍历字符数组,使用 Integer.toHexString() 方法将每个字符转换为其对应的 Unicode 编码,并将其添加到 unicode 中。最后,将 unicode 转换为字符串并返回。

Unicode 转换为字符串

要将 Unicode 编码转换为字符串,可以使用 String 类的 valueOf() 方法将一个字符数组转换为字符串。

下面是一个将 Unicode 编码转换为字符串的示例代码:

public class StringConverter {
    public static String convertToString(String unicodeStr) {
        StringBuilder str = new StringBuilder();
        
        String[] unicodeArr = unicodeStr.split("\\\\u");
        for (int i = 1; i < unicodeArr.length; i++) {
            int unicode = Integer.parseInt(unicodeArr[i], 16);
            str.append((char)unicode);
        }
        
        return str.toString();
    }
    
    public static void main(String[] args) {
        String unicodeStr = "\\u0048\\u0065\\u006c\\u006c\\u006f\\u002c\\u0020\\u0057\\u006f\\u0072\\u006c\\u0064\\u0021";
        String str = convertToString(unicodeStr);
        System.out.println(str);
    }
}

运行上述代码,输出结果为:

Hello, World!

上述代码中,convertToString() 方法将 Unicode 编码转换为字符串。首先创建一个 StringBuilder 对象 str,用于存储转换后的字符串。然后,根据 "\u" 分割 Unicode 编码字符串,得到一个字符串数组 unicodeArr,其中第一个元素为空字符串。遍历 unicodeArr,将每个非空元素转换为对应的 Unicode 编码,并将其转换为字符添加到 str 中。最后,