diff --git a/spring-core/src/main/java/org/springframework/util/StringUtils.java b/spring-core/src/main/java/org/springframework/util/StringUtils.java index f75cbcdedf..9fe0fcd4af 100644 --- a/spring-core/src/main/java/org/springframework/util/StringUtils.java +++ b/spring-core/src/main/java/org/springframework/util/StringUtils.java @@ -453,17 +453,17 @@ public abstract class StringUtils { return inString; } - StringBuilder sb = new StringBuilder(inString.length()); + int lastCharIndex = 0; + char[] result = new char[inString.length()]; for (int i = 0; i < inString.length(); i++) { char c = inString.charAt(i); if (charsToDelete.indexOf(c) == -1) { - sb.append(c); + result[lastCharIndex++] = c; } } - return sb.toString(); + return new String(result, 0, lastCharIndex); } - //--------------------------------------------------------------------- // Convenience methods for working with formatted Strings //--------------------------------------------------------------------- diff --git a/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java b/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java index a1be518a42..b7eaa7d7b7 100644 --- a/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java +++ b/spring-core/src/test/java/org/springframework/util/StringUtilsTests.java @@ -306,7 +306,7 @@ class StringUtilsTests { void quoteIfString() { assertThat(StringUtils.quoteIfString("myString")).isEqualTo("'myString'"); assertThat(StringUtils.quoteIfString("")).isEqualTo("''"); - assertThat(StringUtils.quoteIfString(5)).isEqualTo(Integer.valueOf(5)); + assertThat(StringUtils.quoteIfString(5)).isEqualTo(5); assertThat(StringUtils.quoteIfString(null)).isNull(); } @@ -498,7 +498,7 @@ class StringUtilsTests { void tokenizeToStringArrayWithNotIgnoreEmptyTokens() { String[] sa = StringUtils.tokenizeToStringArray("a,b , ,c", ",", true, false); assertThat(sa.length).isEqualTo(4); - assertThat(sa[0].equals("a") && sa[1].equals("b") && sa[2].equals("") && sa[3].equals("c")).as("components are correct").isTrue(); + assertThat(sa[0].equals("a") && sa[1].equals("b") && sa[2].isEmpty() && sa[3].equals("c")).as("components are correct").isTrue(); } @Test @@ -539,7 +539,7 @@ class StringUtilsTests { } @Test - void delimitedListToStringArrayWithEmptyString() { + void delimitedListToStringArrayWithEmptyDelimiter() { String[] sa = StringUtils.delimitedListToStringArray("a,b", ""); assertThat(sa.length).isEqualTo(3); assertThat(sa[0]).isEqualTo("a"); @@ -601,7 +601,7 @@ class StringUtilsTests { // Could read these from files String[] sa = StringUtils.commaDelimitedListToStringArray("a,,b"); assertThat(sa.length).as("a,,b produces array length 3").isEqualTo(3); - assertThat(sa[0].equals("a") && sa[1].equals("") && sa[2].equals("b")).as("components are correct").isTrue(); + assertThat(sa[0].equals("a") && sa[1].isEmpty() && sa[2].equals("b")).as("components are correct").isTrue(); sa = new String[] {"", "", "a", ""}; doTestCommaDelimitedListToStringArrayLegalMatch(sa);