在Java如何將將ArrayList<String>
中的字串合併並以逗號分隔?
通常對新手來說這問題要問的其實是要怎麼把最前面(或最後面)多出來的逗號刪除,請參考下範例。
List list = new ArrayList();
list.add("台北");
list.add("桃園");
list.add("新竹");
list.add("苗栗");
list.add("宜蘭");
System.out.println(list.toString()); // [台北, 桃園, 新竹, 苗栗, 宜蘭]
StringBuilder sb = new StringBuilder();
if(list != null && list.size() > 0){
for(int i = 0 ; i < list.size(); i++) {
sb.append(i == 0 ? list.get(i) : "," + list.get(i)); // 使用三元運算子判斷是否為第一筆
}
}
System.out.println(sb.toString()); // 台北,桃園,新竹,苗栗,宜蘭
// 使用 Apache Commons Lange 的StringUtils
System.out.println(StringUtils.join(list, ",")); // 台北,桃園,新竹,苗栗,宜蘭
// 使用Java 8 String.join()
String.join(",", list); // 台北,桃園,新竹,苗栗,宜蘭
若List
直接呼叫toString()
則會多了前後的方括弧。邏輯是如果是List中的第一筆字串,則前面不加逗號,而之後的每一筆字串的前面都要加上逗號,然後全部串接起來。
更快的方法就是用Apache Commons Lang提供的StringUtils.join()
方法,使用前要將jar加入專案並Import到類別中。
或使用Java 8的String.join()
。
沒有留言:
張貼留言