Use StringJoiner where possible to simplify String joining

This commit is contained in:
stsypanov 2019-03-07 10:58:23 +02:00 committed by Juergen Hoeller
parent f087fd5a93
commit cb4d6f097c
5 changed files with 25 additions and 46 deletions

View File

@ -21,6 +21,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import java.util.StringJoiner;
import org.springframework.lang.Nullable;
@ -709,18 +710,11 @@ public abstract class ObjectUtils {
if (length == 0) {
return EMPTY_ARRAY;
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
if (i == 0) {
sb.append(ARRAY_START);
StringJoiner sj = new StringJoiner(ARRAY_ELEMENT_SEPARATOR, ARRAY_START, ARRAY_END);
for (Object o : array) {
sj.add(String.valueOf(o));
}
else {
sb.append(ARRAY_ELEMENT_SEPARATOR);
}
sb.append(String.valueOf(array[i]));
}
sb.append(ARRAY_END);
return sb.toString();
return sj.toString();
}
/**

View File

@ -19,6 +19,7 @@ package org.springframework.expression.spel.ast;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringJoiner;
import org.springframework.asm.MethodVisitor;
import org.springframework.expression.EvaluationException;
@ -102,17 +103,13 @@ public class InlineList extends SpelNodeImpl {
@Override
public String toStringAST() {
StringBuilder sb = new StringBuilder("{");
StringJoiner sj = new StringJoiner(",", "{", "}");
// String ast matches input string, not the 'toString()' of the resultant collection, which would use []
int count = getChildCount();
for (int c = 0; c < count; c++) {
if (c > 0) {
sb.append(",");
sj.add(getChild(c).toStringAST());
}
sb.append(getChild(c).toStringAST());
}
sb.append("}");
return sb.toString();
return sj.toString();
}
/**

View File

@ -633,15 +633,11 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable
* as specified by the {@code Accept-Charset} header.
*/
public void setAcceptCharset(List<Charset> acceptableCharsets) {
StringBuilder builder = new StringBuilder();
for (Iterator<Charset> iterator = acceptableCharsets.iterator(); iterator.hasNext();) {
Charset charset = iterator.next();
builder.append(charset.name().toLowerCase(Locale.ENGLISH));
if (iterator.hasNext()) {
builder.append(", ");
StringJoiner joiner = new StringJoiner(", ");
for (Charset charset : acceptableCharsets) {
joiner.add(charset.name().toLowerCase(Locale.ENGLISH));
}
}
set(ACCEPT_CHARSET, builder.toString());
set(ACCEPT_CHARSET, joiner.toString());
}
/**

View File

@ -17,7 +17,7 @@
package org.springframework.web.reactive.result.condition;
import java.util.Collection;
import java.util.Iterator;
import java.util.StringJoiner;
import org.springframework.lang.Nullable;
@ -50,16 +50,12 @@ public abstract class AbstractRequestCondition<T extends AbstractRequestConditio
@Override
public String toString() {
StringBuilder builder = new StringBuilder("[");
for (Iterator<?> iterator = getContent().iterator(); iterator.hasNext();) {
Object expression = iterator.next();
builder.append(expression.toString());
if (iterator.hasNext()) {
builder.append(getToStringInfix());
String infix = getToStringInfix();
StringJoiner joiner = new StringJoiner(infix, "[", "]");
for (Object expression : getContent()) {
joiner.add(expression.toString());
}
}
builder.append("]");
return builder.toString();
return joiner.toString();
}
/**

View File

@ -17,7 +17,7 @@
package org.springframework.web.servlet.mvc.condition;
import java.util.Collection;
import java.util.Iterator;
import java.util.StringJoiner;
import org.springframework.lang.Nullable;
@ -74,16 +74,12 @@ public abstract class AbstractRequestCondition<T extends AbstractRequestConditio
@Override
public String toString() {
StringBuilder builder = new StringBuilder("[");
for (Iterator<?> iterator = getContent().iterator(); iterator.hasNext();) {
Object expression = iterator.next();
builder.append(expression.toString());
if (iterator.hasNext()) {
builder.append(getToStringInfix());
String infix = getToStringInfix();
StringJoiner joiner = new StringJoiner(infix, "[", "]");
for (Object expression : getContent()) {
joiner.add(expression.toString());
}
}
builder.append("]");
return builder.toString();
return joiner.toString();
}
}