Eu sei String#codePointAt(int)
, mas é indexado pelo char
deslocamento, não pelo deslocamento do ponto de código.
Estou pensando em tentar algo como:
- usando
String#charAt(int)
para obter ochar
em um índice - testando se o
char
está na faixa de substitutos elevados- em caso afirmativo, use
String#codePointAt(int)
para obter o ponto de código e incremente o índice em 2 - caso contrário, use o
char
valor fornecido como ponto de código e aumente o índice em 1
- em caso afirmativo, use
Mas minhas preocupações são
- Não tenho certeza se os pontos de código que estão naturalmente na faixa de substitutos elevados serão armazenados como dois
char
valores ou um - esta parece uma maneira terrivelmente cara de iterar pelos personagens
- alguém deve ter inventado algo melhor.