使用单独的开始/结束字符连接字符串

时间:2013-03-21 16:00:30

标签: java string join guava

根据是否有一个或多个匹配项,加入具有不同开头/结尾字符的字符串的好方法是什么?

预期输出

[1] foo=bar
[2] foo=(bar & baz & quz)

我正在寻找是否有比我的解决方案更优雅的东西

String s = Joiner.on(" & ").join(elements);
return elements.size() > 1 ? "(".concat(s).concat(")") : s;

2 个答案:

答案 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(", ","{", "}"));
        }

    }