Java
8具有
Collectors.joining()及其重载。它也有
String.join。使用
Stream和
Collector
具有可重复使用的功能
Function<String,String> 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。
使用旧版Java使用番石榴String result = listOfString.isEmpty() ? "" : """ + String.join("", "", listOfStrings) + """;
没有图书馆Function<String,String> addQuotes = new Function<String,String>() { @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<String> 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<String>而不是a
String[]。你可以转换
String[]成
List<String>使用
Arrays.asList(arrayOfStrings)。您可以
Stream<String>直接从
String[]using获取
Arrays.stream(arrayOfString)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)