根据是否有一个或多个匹配项,加入具有不同开头/结尾字符的字符串的好方法是什么?
预期输出
[1] foo=bar
[2] foo=(bar & baz & quz)
我正在寻找是否有比我的解决方案更优雅的东西
String s = Joiner.on(" & ").join(elements);
return elements.size() > 1 ? "(".concat(s).concat(")") : s;
答案 0 :(得分:3)
不,没有更好的方法。乔伊纳(有点刻意)只是直接加入。
答案 1 :(得分:0)
更加优雅,但对于任何想要避开Guava并使用java 8 Streams的人来说:
public class App {
public static void main(String args[]) {
List<String> stringList = new ArrayList<>(Arrays.asList("bar","baz","quz"));
List<String> stringListSingle = new ArrayList<>(Arrays.asList("bar"));
System.out.println(printStrings(stringList));
System.out.println(printStrings(stringListSingle));
}
private static String printStrings(List<String> stringList) {
return stringList.size() == 1 ? String.join(" & ", stringList) : stringList.stream()
.collect(Collectors.joining(", ","{", "}"));
}
}