]> source.dussan.org Git - poi.git/commitdiff
remove one use of CodepointsUtil.iteratorFor
authorPJ Fanning <fanningpj@apache.org>
Sat, 3 Feb 2024 20:20:40 +0000 (20:20 +0000)
committerPJ Fanning <fanningpj@apache.org>
Sat, 3 Feb 2024 20:20:40 +0000 (20:20 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1915571 13f79535-47bb-0310-9956-ffa450edef68

poi/src/main/java/org/apache/poi/ss/format/CellFormatPart.java

index e87343d9f2e8028047f0974b0cfa9fdadcbe5a59..879884d4a5a9c69310aec181e9ca184cef3a80f2 100644 (file)
@@ -573,11 +573,17 @@ public class CellFormatPart {
      * @return The character repeated three times.
      */
     static String expandChar(String part) {
-        List<String> codePoints = new ArrayList<>();
-        CodepointsUtil.iteratorFor(part).forEachRemaining(codePoints::add);
-        if (codePoints.size() < 2) throw new IllegalArgumentException("Expected part string to have at least 2 chars");
-        String ch = codePoints.get(1);
-        return ch + ch + ch;
+        PrimitiveIterator.OfInt iterator = CodepointsUtil.primitiveIterator(part);
+        Integer c0 = iterator.hasNext() ? iterator.next() : null;
+        Integer c1 = iterator.hasNext() ? iterator.next() : null;
+        if (c0 == null || c1 == null)
+            throw new IllegalArgumentException("Expected part string to have at least 2 chars");
+        char[] ch = Character.toChars(c1);
+        StringBuilder sb = new StringBuilder(ch.length * 3);
+        sb.append(ch);
+        sb.append(ch);
+        sb.append(ch);
+        return sb.toString();
     }
 
     /**