2

根据是否有一个或多个匹配项来连接具有不同开始/结束字符的字符串的好方法是什么?

预期产出

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

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

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

2 回答 2

3

不,没有更好的方法。Joiner(有点刻意)只做简单的加入。

于 2013-03-21T16:02:55.997 回答
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(", ","{", "}"));
        }

    }
于 2017-04-10T08:23:40.150 回答