背景
有些时候,需要把集合中的元素,用逗号进行分割。记录两种常用的处理方式。
过程
- 经典分割写法
public static String convertToDelimitedString(List<String> list) {
StringBuilder resultString = new StringBuilder();
if (list != null) {
for (String result : list) {
if (resultString.length() > 0) {
resultString.append(",");
}
resultString.append(result);
}
}
return resultString.toString();
}
- 测试
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
String result = convertToDelimitedString(list);
System.out.println(result);
}
- 测试结果
aa,bb,cc,dd
- 递归写法
private static void convertToDelimitedString(StringBuilder sb, List<String> list, int idx) {
// 退出条件
if (idx == list.size()) {
return;
}
// 业务逻辑
String str = list.get(idx);
sb.append(str);
idx++;
if (idx != list.size()) {
sb.append(",");
}
// 递归调用
convertToDelimitedString(sb, list, idx);
}
- 测试
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
StringBuilder sb = new StringBuilder();
convertToDelimitedString(sb, list, 0);
System.out.println(sb.toString());
}
- 测试结果
aa,bb,cc,dd
小结
- 记录两种拼接方式,尤其第一种经典的写法。