在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)即可。