在Java中处理多字节Unicode字符非常简单,因为Java的字符串是以Unicode编码的
\u
表示法编写Unicode字符:public class Main {
public static void main(String[] args) {
String str = "\u4F60\u597D, \u4E16\u754C!"; // 你好,世界!
System.out.println(str);
}
}
char
数据类型存储Unicode字符:public class Main {
public static void main(String[] args) {
char ch1 = '\u4F60'; // 你
char ch2 = '\u597D'; // 好
System.out.println("" + ch1 + ch2);
}
}
String
类的构造函数将字节数组转换为字符串:public class Main {
public static void main(String[] args) {
byte[] bytes = new byte[]{(byte) 0xE4, (byte) 0xBD, (byte) 0xA0, (byte) 0xE5, (byte) 0xA5, (byte) 0xBD}; // 你好的UTF-8编码
try {
String str = new String(bytes, "UTF-8");
System.out.println(str);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
String
类的getBytes()
方法将字符串转换为字节数组:public class Main {
public static void main(String[] args) {
String str = "你好";
try {
byte[] bytes = str.getBytes("UTF-8");
for (byte b : bytes) {
System.out.print(String.format("%02X ", b));
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
StringBuilder
或StringBuffer
来创建和操作包含多字节Unicode字符的字符串:public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.appendCodePoint(0x4F60); // 你
sb.appendCodePoint(0x597D); // 好
System.out.println(sb.toString());
}
}
总之,Java内置了对Unicode的支持,因此处理多字节Unicode字符非常简单。只需确保在处理字符串时使用正确的编码(如UTF-8)即可。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:charAt Java能否处理多字节字符