Improve performance of StringUtils.deleteAny()
This commit is contained in:
parent
8c0aaf4863
commit
e1951a098b
|
@ -453,17 +453,17 @@ public abstract class StringUtils {
|
||||||
return inString;
|
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++) {
|
for (int i = 0; i < inString.length(); i++) {
|
||||||
char c = inString.charAt(i);
|
char c = inString.charAt(i);
|
||||||
if (charsToDelete.indexOf(c) == -1) {
|
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
|
// Convenience methods for working with formatted Strings
|
||||||
//---------------------------------------------------------------------
|
//---------------------------------------------------------------------
|
||||||
|
|
|
@ -306,7 +306,7 @@ class StringUtilsTests {
|
||||||
void quoteIfString() {
|
void quoteIfString() {
|
||||||
assertThat(StringUtils.quoteIfString("myString")).isEqualTo("'myString'");
|
assertThat(StringUtils.quoteIfString("myString")).isEqualTo("'myString'");
|
||||||
assertThat(StringUtils.quoteIfString("")).isEqualTo("''");
|
assertThat(StringUtils.quoteIfString("")).isEqualTo("''");
|
||||||
assertThat(StringUtils.quoteIfString(5)).isEqualTo(Integer.valueOf(5));
|
assertThat(StringUtils.quoteIfString(5)).isEqualTo(5);
|
||||||
assertThat(StringUtils.quoteIfString(null)).isNull();
|
assertThat(StringUtils.quoteIfString(null)).isNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -498,7 +498,7 @@ class StringUtilsTests {
|
||||||
void tokenizeToStringArrayWithNotIgnoreEmptyTokens() {
|
void tokenizeToStringArrayWithNotIgnoreEmptyTokens() {
|
||||||
String[] sa = StringUtils.tokenizeToStringArray("a,b , ,c", ",", true, false);
|
String[] sa = StringUtils.tokenizeToStringArray("a,b , ,c", ",", true, false);
|
||||||
assertThat(sa.length).isEqualTo(4);
|
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
|
@Test
|
||||||
|
@ -539,7 +539,7 @@ class StringUtilsTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void delimitedListToStringArrayWithEmptyString() {
|
void delimitedListToStringArrayWithEmptyDelimiter() {
|
||||||
String[] sa = StringUtils.delimitedListToStringArray("a,b", "");
|
String[] sa = StringUtils.delimitedListToStringArray("a,b", "");
|
||||||
assertThat(sa.length).isEqualTo(3);
|
assertThat(sa.length).isEqualTo(3);
|
||||||
assertThat(sa[0]).isEqualTo("a");
|
assertThat(sa[0]).isEqualTo("a");
|
||||||
|
@ -601,7 +601,7 @@ class StringUtilsTests {
|
||||||
// Could read these from files
|
// Could read these from files
|
||||||
String[] sa = StringUtils.commaDelimitedListToStringArray("a,,b");
|
String[] sa = StringUtils.commaDelimitedListToStringArray("a,,b");
|
||||||
assertThat(sa.length).as("a,,b produces array length 3").isEqualTo(3);
|
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", ""};
|
sa = new String[] {"", "", "a", ""};
|
||||||
doTestCommaDelimitedListToStringArrayLegalMatch(sa);
|
doTestCommaDelimitedListToStringArrayLegalMatch(sa);
|
||||||
|
|
Loading…
Reference in New Issue