Así que lo sé String#codePointAt(int), pero está indexado por el chardesplazamiento, no por el desplazamiento del punto de código.
Estoy pensando en probar algo como:
- usando
String#charAt(int)para obtenercharun índice - probando si
charestá en el rango de altos sustitutos- si es así, use
String#codePointAt(int)para obtener el punto de código e incremente el índice en 2 - si no, use el
charvalor dado como punto de código e incremente el índice en 1
- si es así, use
Pero mis preocupaciones son
- No estoy seguro de si los puntos de código que están naturalmente en el rango de altos sustitutos se almacenarán como dos
charvalores o uno - esto parece una forma terriblemente cara de iterar a través de los personajes
- alguien debe haber ideado algo mejor.