Các phương thức này hỗ trợ xử lý điểm mã Unicode của lớp String

Những phương thức này hỗ trợ xử lý điểm mã Unicode của chuỗi

↳ int codePointAt(int index): Trả về điểm mã Unicode tại một vị trí cụ thể.

↳ int codePointBefore(int index): Trả về điểm mã Unicode trước một vị trí cụ thể.

↳ int codePointCount(int beginIndex, int endIndex): Trả về số lượng điểm mã Unicode trong một khoảng chỉ định của chuỗi.

↳ int offsetByCodePoints(int index, int codePointOffset): Tính toán vị trí mới dựa trên vị trí ban đầu và số lượng điểm mã dịch chuyển. Các phương thức này đặc biệt hữu ích khi làm việc với các ký tự đặc biệt hoặc các ngôn ngữ khác nhau, nơi một ký tự có thể được biểu diễn bằng nhiều điểm mã.

Dưới đây là ví dụ về cách sử dụng các phương thức thao tác với điểm mã Unicode trong cùng một lớp Java:

Ví dụ: Example.java

public class Example {
    public static void main(String[] args) {
        String str = "Hello, 𠜎 world!";
        
        // 1. codePointAt(int index): Trả về điểm mã Unicode tại một vị trí cụ thể
        int index = 7;
        int codePointAt = str.codePointAt(index);
        System.out.println("Điểm mã Unicode tại vị trí " + index + ": " + Integer.toHexString(codePointAt));

        // 2. codePointBefore(int index): Trả về điểm mã Unicode trước một vị trí cụ thể
        int codePointBefore = str.codePointBefore(index);
        System.out.println("Điểm mã Unicode trước vị trí " + index + ": " + Integer.toHexString(codePointBefore));
        
        // 3. codePointCount(int beginIndex, int endIndex): Trả về số lượng điểm mã Unicode trong một khoảng chỉ định của chuỗi
        int beginIndex = 0;
        int endIndex = str.length();
        System.out.println("Số lượng điểm mã Unicode từ " + beginIndex + " đến " + endIndex + ": " + str.codePointCount(beginIndex, endIndex));

        // Ví dụ với khoảng chỉ định khác
        beginIndex = 5;
        endIndex = 15;
        System.out.println("Số lượng điểm mã Unicode từ " + beginIndex + " đến " + endIndex + ": " + str.codePointCount(beginIndex, endIndex));
    
        // 4. offsetByCodePoints(int index, int codePointOffset): Tính toán vị trí mới dựa trên vị trí ban đầu và số lượng điểm mã dịch chuyển
        int codePointOffset = 1;
        int newIndex = str.offsetByCodePoints(index, codePointOffset);
        System.out.println("Vị trí mới sau khi dịch chuyển " + codePointOffset + " điểm mã từ vị trí " + index + ": " + newIndex);

        // Ví dụ với vị trí và điểm mã dịch chuyển khác
        codePointOffset = -1;
        newIndex = str.offsetByCodePoints(index, codePointOffset);
        System.out.println("Vị trí mới sau khi dịch chuyển " + codePointOffset + " điểm mã từ vị trí " + index + ": " + newIndex);
        
    }
  }
}

Kết quả của chương trình là:

Điểm mã Unicode tại vị trí 7: 2070e
Điểm mã Unicode trước vị trí 7: 20
Số lượng điểm mã Unicode từ 5 đến 15: 10
Vị trí mới sau khi dịch chuyển 1 điểm mã từ vị trí 7: 9
Vị trí mới sau khi dịch chuyển -1 điểm mã từ vị trí 7: 6
Số lượng điểm mã Unicode từ 0 đến 25: 25

Ví dụ trên hiển thị cách sử dụng các phương thức để thao tác với điểm mã Unicode, giúp làm việc với các ký tự đặc biệt hoặc các ngôn ngữ khác nhau.

Câu Nói Truyền Cảm Hứng

“Bắt đầu ở đâu không quan trọng, quan trọng là bạn sẵn sàng bắt đầu.” – W. Clement Stone

Không Gian Tích Cực

“Chúc bạn luôn giữ vững niềm tin và sức mạnh để vượt qua mọi thử thách trong cuộc sống.”