1
4

1 回答 1

1

你有两个问题:

  1. StringCharacterIterator::hasNext仅当迭代器超出字符串末尾时才返回 false。
  2. StringCharacterIterator::next32前进迭代器的当前位置并返回新的代码点。它类似于*(++it)原始指针或标准库样式迭代器。

总而言之,这意味着您正在跳过字符串的第一个字符并在末尾读取一个额外的字符。

您可以使用next32PostInc,其行为类似于*(it++)原始指针或标准库迭代器,而不是next32

while(chars.hasNext())
    copy.append(chars.next32PostInc());
于 2017-11-14T01:18:48.707 回答