小编典典
使用Java 8+
使用Stream和Collector
具有可重复使用的功能
Function addQuotes = s -> "\"" + s + "\"";
String result = listOfStrings.stream()
.map(addQuotes)
.collect(Collectors.joining(", "));
没有任何可重用的功能
String result = listOfStrings.stream()
.map(s -> "\"" + s + "\"")
.collect(Collectors.joining(", "));
最短的 (虽然有点骇人听闻)
String result = listOfStrings.stream()
.collect(Collectors.joining("\", \"", "\"", "\""));
使用 String.join
非常朴实。请勿在称为的方法中使用wrapWithQuotesAndJoin。
String result = listOfString.isEmpty() ? "" : "\"" + String.join("\", \"", listOfStrings) + "\"";
使用旧版Java
帮自己一个忙,并使用图书馆。番石榴立刻浮现在脑海。
使用番石榴
Function addQuotes = new Function() {
@Override public String apply(String s) {
return new StringBuilder(s.length()+2).append('"').append(s).append('"').toString();
}
};
String result = Joiner.on(", ").join(Iterables.transform(listOfStrings, addQuotes));
没有图书馆
String result;
if (listOfStrings.isEmpty()) {
result = "";
} else {
StringBuilder sb = new StringBuilder();
Iterator it = listOfStrings.iterator();
sb.append('"').append(it.next()).append('"'); // Not empty
while (it.hasNext()) {
sb.append(", \"").append(it.next()).append('"');
}
result = sb.toString();
}
注意 :所有解决方案均假定listOfStrings是a List而不是a
String[]。你可以转换String[]成List使用Arrays.asList(arrayOfStrings)。您可以Stream直接从String[]using获取Arrays.stream(arrayOfString)。
2020-10-18