2013-03-21 40 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(", ","{", "}")); 
     } 

    } 
相關問題