Java 中Char是兩個字節,Char在Java中也被稱為代碼單元(Code Unit) 。
Java中的字符與代碼點(Code Unit)一 一對應,而可能對應一個或者兩個 代碼單元
字符串的length()方法,能獲取代碼單元的長度,或者說char的個數
也就是說,length()方法的返回值可能大於實際字符個數
class Main {
public static void main(String[] args) {
String he = "⑪1曦👩"; // 這里,這個emoji表情需要兩個char
System.out.println("代碼單元:"+he.length());
// 輸出比實際的字符長度 長
// 如果乘以2,就可以得到實際的字節大小
System.out.println("碼點:"+he.codePointCount(0, he.length()));
// 可以看到,這樣才能得到字符串的實際字符個數
System.out.println(he.charAt(0));
System.out.println(he.charAt(1));
System.out.println(he.charAt(2));
System.out.println(he.charAt(3));
System.out.println(he.charAt(4));
// 這兩個char都只是一個碼點的一部分,所以無法正常顯示
System.out.println("----------------------");
}
}
輸出:
代碼單元:5
碼點:4
⑪
1
曦
?
?
----------------------