根据是否有一个或多个匹配项来连接具有不同开始/结束字符的字符串的好方法是什么?
预期产出
[1] foo=bar
[2] foo=(bar & baz & quz)
我正在寻找是否有比我的解决方案更优雅的东西
String s = Joiner.on(" & ").join(elements);
return elements.size() > 1 ? "(".concat(s).concat(")") : s;
不,没有更好的方法。Joiner(有点刻意)只做简单的加入。
几乎没有更优雅,但对于任何想要避免使用 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(", ","{", "}"));
}
}