Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Phương thức Character.charCount() trong Java với ví dụ

Phương thức Character.charCount() xác định số giá trị char cần thiết để biểu diễn ký tự chỉ định (Unicode code point). Nếu ký tự lớn hơn hoặc bằng 0x10000, trả về 2 (surrogate pair). Ngược lại trả về 1 (BMP - Basic Multilingual Plane).

Ví dụ 1

import java.lang.*;

public class Demo {
    public static void main(String[] args) {
        int cp = 0x12345; // 74565 decimal - supplementary character
        int res = Character.charCount(cp);
        
        String str1 = "Không phải supplementary character hợp lệ";
        String str2 = "Là supplementary character hợp lệ";
        
        if (res == 1) {
            System.out.println(str1);
        } else if (res == 2) {
            System.out.println(str2);
        }
    }
}

Kết quả

Là supplementary character hợp lệ

Ví dụ 2

import java.lang.*;

public class Demo {
    public static void main(String[] args) {
        int c = 0x11987; // 72071 decimal
        int res = Character.charCount(c);
        System.out.println(res);
    }
}

Kết quả

2

Bối cảnh: Java dùng UTF-16. Ký tự trong BMP (U+0000 đến U+FFFF) dùng 1 char (16-bit). Ký tự supplementary (U+10000 đến U+10FFFF) dùng 2 char (surrogate pair: high surrogate + low surrogate). charCount() giúp tính độ dài thực của chuỗi khi xử lý low-level.