Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Java Character charCount() - นับ Char Values สำหรับ Unicode Code Point

เมธอด 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 ใดๆ