Vì vậy, tôi biết về String#codePointAt(int), nhưng nó được lập chỉ mục bởi phần charbù, không phải bằng phần bù điểm.
Tôi đang nghĩ về việc thử một cái gì đó như:
- sử dụng
String#charAt(int)để lấycharchỉ mục - kiểm tra xem có
charnằm trong phạm vi đại diện cao không- nếu vậy, hãy sử dụng
String#codePointAt(int)để lấy điểm mã và tăng chỉ số lên 2 - nếu không, hãy sử dụng
chargiá trị đã cho làm điểm mã và tăng chỉ số lên 1
- nếu vậy, hãy sử dụng
Nhưng mối quan tâm của tôi là
- Tôi không chắc liệu các điểm mã tự nhiên nằm trong phạm vi đại diện cao sẽ được lưu trữ dưới dạng hai
chargiá trị hay một - đây có vẻ như là một cách tốn kém kinh khủng để lặp lại các ký tự
- ai đó chắc hẳn đã nghĩ ra một cái gì đó tốt hơn.