迭代 Java 字符串中的 Unicode 代码点
虽然 String 类提供了用于访问 Unicode 代码点的 codePointAt(int) 方法,但其索引依赖于基于字符偏移量而不是代码点偏移量。这引起了对处理高代理范围内的字符以及所提出的使用逐字符扫描的迭代方法的效率的担忧。
改进的迭代解决方案
Java 的内部字符串表示采用基于 UTF-16 的编码方案。基本多语言平面 (BMP) 之外的字符使用代理方案进行编码。为了高效迭代,请考虑使用以下规范方法:
final int length = s.length();
for (int offset = 0; offset 此方法可以正确处理 BMP 之外的字符的代理对。通过利用Character.charCount(codepoint),它可以有效地将每个代码点的偏移量增加适当的字符数。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3