如何循环访问 Java 字符串的 unicode 代码点?
所以我知道 String#codePointAt(int)
,但它是按偏移量而不是代码点偏移量编制索引的。char
我正在考虑尝试这样的事情:
- 使用
String#charAt(int)
获取 at 索引char
- 测试 是否在高代理项范围内
char
- 如果是这样,请使用
String#codePointAt(int)
获取代码点,并将索引递增 2 - 如果不是,则使用给定值作为代码点,并将索引递增 1
char
- 如果是这样,请使用
但我担心的是
- 我不确定自然位于高代理项范围内的代码点是存储为两个值还是一个值
char
- 这似乎是一种非常昂贵的迭代字符的方式
- 一定有人想出了更好的东西。