Bu yüzden biliyorum String#codePointAt(int), ama charkod noktası ofsetiyle değil, ofsetle indeksleniyor .
Şöyle bir şey denemeyi düşünüyorum:
- bir dizinde
String#charAt(int)almak için kullanarakchar - olup olmadığını test
charolan aralığı yükseği-suretler- eğer öyleyse,
String#codePointAt(int)kod noktasını almak için kullanın ve dizini 2 artırın - değilse
char, kod noktası olarak verilen değeri kullanın ve dizini 1 artırın
- eğer öyleyse,
Ama endişelerim
- Doğal olarak yüksek vekiller aralığında bulunan kod noktalarının iki
chardeğer olarak mı yoksa bir değer olarak mı depolanacağından emin değilim - bu, karakterler arasında yinelemenin çok pahalı bir yolu gibi görünüyor
- birisi daha iyi bir şey bulmuş olmalı.