ArrayList转为逗号分隔String
很多时候需要转换List为String,以逗号分隔,有可能还不需要括号,这里记录下常用的两种转换方法。
References:
- https://stackoverflow.com/questions/9265719/print-arraylist
- https://blog.csdn.net/benjaminlee1/article/details/72860845
以如下的List为例:
List<String> list = new ArrayList<>();
list.add("LT1");
list.add("LT2");
list.add("LT3");
list.add("LT4");
List<String> list2 = new ArrayList<>();
list2.add("LT233");
通常的转换如下:
System.out.println(Arrays.toString(list.toArray()));
// Output:
// [LT1, LT2, LT3, LT4]
System.out.println(Arrays.toString(list2.toArray()));
// Output:
// [LT233]
// 由于ArrayList的父类AbstractCollection重写了toString()方法,因此可以直接使用toString():
System.out.println(list);
但是这种带括号的可能不是我们想要的,有时候就是需要一个逗号分隔的字符串而已,如下:
String listStr = String.join(",", list);
System.out.println(listStr);
// Output:
// LT1,LT2,LT3,LT4
String listStr2 = String.join(",", list2);
System.out.println(listStr2);
// Output:
// LT233
或者使用Java8的Lambda:
String listLambda = list.stream().collect(Collectors.joining(","));
System.out.println(listLambda);
// Output:
// LT1,LT2,LT3,LT4
String listLambda2 = list2.stream().collect(Collectors.joining(","));
System.out.println(listLambda2);
// Output:
// LT233