2013-03-21 105 views
2

根据是否有一个或多个匹配,用不同的开始/结束字符连接字符串的好方法是什么?连接字符串与单独的开始/结束字符

预期输出

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

我想看看是否有什么东西一点点比我的解决方案

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

的代码看起来更好,如果你使用的'+'运算符拼接字符串:'返回元素。 size()> 1? “(”+ s +“)”:s;' – 2013-04-02 12:16:29

回答

3

不,还没有一个更好的方式更优雅。乔伊纳(有些故意)只做简单的加入。

0

几乎没有更优雅,但谁想要避免番石榴和与Java 8流走:

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

    } 
相关问题