diff --git a/poi/src/main/java/org/apache/poi/util/CodepointsUtil.java b/poi/src/main/java/org/apache/poi/util/CodepointsUtil.java index 107e37416e..9f2d01780c 100644 --- a/poi/src/main/java/org/apache/poi/util/CodepointsUtil.java +++ b/poi/src/main/java/org/apache/poi/util/CodepointsUtil.java @@ -23,7 +23,7 @@ import java.util.Iterator; public class CodepointsUtil { public static Iterator iteratorFor(String text) { return text.codePoints() - .mapToObj(codePoint -> new StringBuilder().appendCodePoint(codePoint).toString()) + .mapToObj(codePoint -> new String(Character.toChars(codePoint))) .iterator(); } } \ No newline at end of file diff --git a/poi/src/test/java/org/apache/poi/util/TestCodepointsUtil.java b/poi/src/test/java/org/apache/poi/util/TestCodepointsUtil.java index 35a05af33e..3610535c95 100644 --- a/poi/src/test/java/org/apache/poi/util/TestCodepointsUtil.java +++ b/poi/src/test/java/org/apache/poi/util/TestCodepointsUtil.java @@ -35,7 +35,6 @@ class TestCodepointsUtil { void testIterator() { final String unicodeSurrogates = "\uD835\uDF4A\uD835\uDF4B\uD835\uDF4C\uD835\uDF4D\uD835\uDF4E" + "abcdef123456"; - Iterator sci = CodepointsUtil.iteratorFor(unicodeSurrogates); List codePoints = new ArrayList<>(); CodepointsUtil.iteratorFor(unicodeSurrogates).forEachRemaining(codePoints::add); assertEquals(17, codePoints.size());