- 使用 List的toString()方法将 List 转换为 String;结果前后会带有英文的中括号[],如:[1, 2, 3, 4, 5]
- 使用Java8 stream流中的Collections.joining()方法,带有逗号分隔符或自定义分隔符将集合转成String字符串
- 使用String.join()方法将带有逗号分隔符或自定义分隔符的集合转换为字符串
- 使用Apache commons包下的StringUtils.join()方法;转成的String结尾带有分隔符小尾巴,如:"张三,李四,"
第一种:List.toString方法
List.toString()产生的结果会在开头和结尾添加英文中括号,每个字符串用逗号分隔符分隔(分隔符不可更变)。如果我们想去掉方括号的话,需要借助String.replaceAll方法。
/**
* List的toString方法,结果前后会带有英文的中括号[],如:[1, 2, 3, 4, 5]
*/
public static void main(String[] args) {
List<Integer> asList = Arrays.asList(1, 2, 3, 4, 5);
String list2String = asList.toString();
System.out.println(list2String);
//使用replaceAll方法替换 中括号
list2String = list2String.replaceAll("\\[|]", "");
System.out.println(list2String);
}
第二种:Stream流转String
java8 stream中提供了Collectors.join()方法可用于将集合转成为具有指定分隔符、前缀和后缀的字符串
public class Demo2 {
/**
* List 转 String
* stream流中的Collections.joining方法
**/
public static void main(String[] args) {
List<String> list = Arrays.asList("张三", "李四", "王武", null, "麻子");
//java stream流中的Collections.joining方法
//指定分隔符
String collect = list.stream().collect(Collectors.joining(","));
//没有分隔符,直接拼接
String collect1 = list.stream().collect(Collectors.joining());
//指定分隔符,前缀,后缀
String collect2 = list.stream().collect(Collectors.joining(",", "{", "}"));
System.out.println(collect);//张三,李四,王武,null,麻子
System.out.println(collect1);//张三李四王武null麻子
System.out.println(collect2);//{张三,李四,王武,null,麻子}
}
}
第三种:String.join()方法
java8 String添加了一个特殊的Join方法,用于将集合转换为指定分隔符连接的字符串。
/**
* String.join()
**/
public static void main(String[] args) {
List<String> list = Arrays.asList("张三", "李四", "王武", null, "麻子");
String join = String.join(",", list);
System.out.println(join);//张三,李四,王武,null,麻子
}
第四种:StringUtils.join()方法
Apache commons包的外部库有一个方法StringUtils.join() 方法,它类似于 String.join() 方法,用于将集合转成指定分隔符链接的字符串;但是,如果集合中有null的话,会被转换成空串。
/**
* StringUtils.join()
**/
public static void main(String[] args) {
List<String> list = Arrays.asList("张三", "李四", "王武", null, "麻子");
//StringUtils.join方法,集合中有null的话,会转成空串""
String join = StringUtils.join(list, ",");
System.out.println(join); //张三,李四,王武,,麻子
}