Vì vậy, tôi biết về String#codePointAt(int)
, nhưng nó được lập chỉ mục bởi phần char
bù, 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ấychar
chỉ mục - kiểm tra xem có
char
nằ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
char
giá 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
char
giá 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.