java8 List对象中的属性以逗号分隔转字符串
1730
0
0
1年前
## Java 8中将集合List转变为用逗号分隔的String
1.String.join()
此方法适用于List<String>
```
List<String> list= Arrays.asList("aaa", "bbb", "ccc", "ddd");
String str= String.join(",", list);
System.out.println(str);
// str = "aaa,bbb,ccc,ddd";
```
流的方式
```
List<String> list= Arrays.asList("aaa", "bbb", "ccc", "ddd");
String str= list.stream().collect(Collectors.joining(","));
System.out.println(str);
// str = "aaa,bbb,ccc,ddd";
```
2.StringUtils.join(Object array[],String separator)
通用
3.list集合中是一个对象
```
List<TestDemo> testDemos = new ArrayList();
TestDemo test1 = new TestDemo();
test1.setId(1);
test1.setName("aaa");
testDemos.add(test1);
TestDemo test2 = new TestDemo();
test2.setId(2);
test2.setName("bbb");
testDemos.add(test2);
TestDemo test3 = new TestDemo();
test3.setId(3);
test3.setName("ccc");
testDemos.add(test3);
TestDemo test4 = new TestDemo();
test4.setId(4);
test4.setName("ddd");
testDemos.add(test4);
//将集合中TestDemo 对象name值以逗号方式隔开转为字符串
String names = testDemos.stream().map(TestDemo::getName).collect(Collectors.joining(","));
System.out.println(names);
// names = "aaa,bbb,ccc,ddd";
```
List对象转String以分隔符分割更简单的方法
```
//1.先将list类型转换
List<Integer> values = CollectionUtils.values(testDemos, TestDemo::getId, false);
//再拼接数据
String ids = StringUtils.join(values,',');
```