เมธอด Character.charCount() กำหนดจำนวน Char Values ที่ต้องใช้ Represent Unicode Code Point ที่ระบุ หาก Code Point มากกว่าหรือเท่ากับ 0x10000 คืน 2 มิฉะนั้นคืน 1
ตัวอย่างที่ 1: ตรวจสอบ Supplementary Character
import java.lang.*;
public class Demo {
public static void main(String[] args) {
int cp = 0x12345; // Code Point
int res = Character.charCount(cp);
String str1 = "It is not a valid supplementary character";
String str2 = "It is a valid supplementary character";
if (res == 1) {
System.out.println(str1);
} else if (res == 2) {
System.out.println(str2);
}
}
}
ผลลัพธ์
It is a valid supplementary character
ตัวอย่างที่ 2: charCount() กับ Code Point อื่น
import java.lang.*;
public class Demo {
public static void main(String[] args) {
int c = 0x11987;
int res = Character.charCount(c);
System.out.println(res); // 2
}
}
ผลลัพธ์
2
พื้นฐาน Unicode:
- BMP (Basic Multilingual Plane): Code Points 0x0000 - 0xFFFF → 1 char (UTF-16)
- Supplementary Planes: Code Points 0x10000 - 0x10FFFF → 2 chars (Surrogate Pair ใน UTF-16)
charCount() ช่วยคำนวณความยาว Char Array ที่ต้องการสำหรับ Code Point ใดๆ