[github-582] improve performance CodepointsUtil.iteratorFor. Thanks to Jason Mirra. This closes #582

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1915572 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2024-02-03 21:06:38 +00:00
parent e455798019
commit 2469b89ee6

View File

@ -29,9 +29,18 @@ public class CodepointsUtil {
* @see #primitiveIterator(String) a more performant iterator
*/
public static Iterator<String> iteratorFor(String text) {
return text.codePoints()
.mapToObj(codePoint -> new String(Character.toChars(codePoint)))
.iterator();
final PrimitiveIterator.OfInt iter = primitiveIterator(text);
return new Iterator<String>() {
@Override
public boolean hasNext() {
return iter.hasNext();
}
@Override
public String next() {
return new String(Character.toChars(iter.nextInt()));
}
};
}
/**