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 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.