将逗号分隔的字符串转换为List
方法 1: 利用JDK的Arrays类

1
2
String str = "a,b,c";
List<String> result = Arrays.asList(str.split(","));

方法 2: 利用Guava的Splitter

1
2
String str = "a, b, c";
List<String> result = Splitter.on(",").trimResults().splitToList(str);

方法 3: 利用Apache Commons的StringUtils (只是用了split)

1
2
String str = "a,b,c";
List<String> result = Arrays.asList(StringUtils.split(str,","));

方法 4: 利用Spring Framework的StringUtils

1
2
String str = "a,b,c";
List<String> str = Arrays.asList(StringUtils.commaDelimitedListToStringArray(str));

将List转换为逗号分隔符
方法 1: 不用工具类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public String listToString(List list, char separator) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
if (i == list.size() - 1) {
sb.append(list.get(i));
} else {
sb.append(list.get(i));
sb.append(separator);
}
}
return sb.toString();
}
public String listToString(List list, char separator) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < list.size(); i++) {
sb.append(list.get(i)).append(separator);
}
return sb.toString().substring(0,sb.toString().length()-1);
}

方法 2: 利用Guava的Joiner

1
2
3
4
5
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
String str = Joiner.on(",").join(list);

方法 3: 利用Apache Commons的StringUtils

1
2
3
4
5
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
String str = StringUtils.join(list.toArray(), ",");

方法 4:利用Spring Framework的StringUtils

1
2
3
4
5
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
String str = StringUtils.collectionToDelimitedString(list, ",");

比较下来,我的观点就是Guava库和StringUtils更灵活,适用面更广。