gpt4 book ai didi

java - 如何遍历 Java 字符串的 unicode 代码点?

转载 作者:IT老高 更新时间:2023-10-28 11:30:45 24 4
gpt4 key购买 nike

所以我知道String#codePointAt(int) ,但它由 char 偏移量索引,而不是由代码点偏移量索引。

我正在考虑尝试类似的方法:

但我担心的是

  • 我不确定自然在高代理范围内的代码点是否会存储为两个 char 值或一个
  • 这似乎是一种非常昂贵的遍历字符的方法
  • 一定有人想出了更好的办法。

最佳答案

是的,Java 对字符串的内部表示使用 UTF-16 式编码,而且,是的,它使用代理方案对基本多语言平面 (BMP) 之外的字符进行编码。

如果您知道您将处理 BMP 之外的字符,那么这里是迭代 Java 字符串字符的规范方法:

final int length = s.length();
for (int offset = 0; offset < length; ) {
final int codepoint = s.codePointAt(offset);

// do something with the codepoint

offset += Character.charCount(codepoint);
}

关于java - 如何遍历 Java 字符串的 unicode 代码点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1527856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com