From e45579801975c995bd846f41f9318cc11b56ffb3 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Sat, 3 Feb 2024 20:20:40 +0000 Subject: [PATCH] remove one use of CodepointsUtil.iteratorFor git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1915571 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/ss/format/CellFormatPart.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/poi/src/main/java/org/apache/poi/ss/format/CellFormatPart.java b/poi/src/main/java/org/apache/poi/ss/format/CellFormatPart.java index e87343d9f2..879884d4a5 100644 --- a/poi/src/main/java/org/apache/poi/ss/format/CellFormatPart.java +++ b/poi/src/main/java/org/apache/poi/ss/format/CellFormatPart.java @@ -573,11 +573,17 @@ public class CellFormatPart { * @return The character repeated three times. */ static String expandChar(String part) { - List 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(); } /** -- 2.39.5