在这篇博文中,如何用逗号分隔的字符串转换列表。这包括以下例子
- 将自定义对象的列表转换为逗号分隔的字符串
- 将字符串/长条/整数的列表转换为逗号分隔的字符串。
如何将自定义对象列表转换为逗号分隔的字符串
有多种方法可以将对象列表转换为逗号分隔的字符串。
这里的对象可以是java类的自定义对象。
例如,用户对象被声明为具有以下成员属性:
package com.company;
public class User {
private Integer id;
private String name;
public User(Integer id, String name) {
this.id = id;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
让我们为这个例子插入数据
List users = new ArrayList();
User user1 = new User (1,"Eric");
User user2 = new User (2,"John");
User user3 = new User (3,"Ram");
users.add(user1);
users.add(user2);
users.add(user3);
使用for循环
for each 循环被用来遍历列表。
以下是步骤的顺序
- 创建一个字符串生成器对象
- 使用forEach循环来迭代每个对象
- 添加对象名称和逗号分隔符
- 使用toString()方法将StringBuilder转换为字符串
- 由于我们在最后一个字符串中添加了一个逗号
- 使用
substring方法删除最后的逗号
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List users = new ArrayList();
User user1 = new User (1,"Eric");
User user2 = new User (2,"John");
User user3 = new User (3,"Ram");
users.add(user1);
users.add(user2);
users.add(user3);
StringBuilder sb = new StringBuilder();
for(User user:users){
sb.append(user.getName()).append(",");
}
String commaDelimeterString=sb.toString();
if( commaDelimeterString.length() > 0 )
commaDelimeterString = commaDelimeterString.substring(0, commaDelimeterString.length() - 1);
System.out.println(commaDelimeterString);
}
}
使用java8流
java8引入了流来操作对象的列表或数组。
你可以查看以下java8流的教程
以下是一系列的步骤
- 使用stream()方法调用列表对象流
- 使用map方法和lambda表达式对每个对象进行迭代
- 在lambda表达式中获取对象的电子邮件
java.util.stream.Collectors连接方法使用逗号分隔符,并使用还原器返回逗号分隔符的字符串。collect
下面是一个完整的例子
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List users = new ArrayList();
User user1 = new User (1,"Eric");
User user2 = new User (2,"John");
User user3 = new User (3,"Ram");
users.add(user1);
users.add(user2);
users.add(user3);
String nameSeparatedString = users.stream().map(user->user.getName())
.collect(Collectors.joining(","));
System.out.println(nameSeparatedString);
}
}
输出:
Eric,John, Ram
将字符串列表转换成逗号分隔的字符串
在本教程中,我们将看到如何将String、Integer**、Long**的原始列表转换为分隔的字符串。
apache commons StringUtils join方法
这是将字符串列表转换为逗号分隔字符串的简单易行的方法。
如果你在你的应用程序中使用apache commons库,你可以使用**StringUtils join()**方法。
同样的方法在apache commons lang模块中也有,即org.apache.commons.lang3.StringUtils
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
public class Main {
public static void main(String[] args) {
List strList = new ArrayList<>();
strList.add("one");
strList.add("two");
strList.add("three");
strList.add("four");
String delimetedCommaString=StringUtils.join(strList, ',');
System.out.println(delimetedCommaString);
}
}
输出
one,two,three,four
Spring框架将整数列表转换成逗号分隔的字符串
Spring框架在org.springframework.util包中提供了StringUtils类。
这个类有arrayToDelimitedString 方法
以下是该方法的语法
public static String arrayToDelimitedString(@Nullable
Object[] arr,
String delim)
下面是一个将整数列表转换为逗号分隔字符串的例子 代码
import java.util.ArrayList;
import java.util.List;
import org.springframework.util.StringUtils;
public class Main {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add(1);
list.add(12);
list.add(14);
list.add(50);
String delimetedCommaString=arrayToDelimitedString(list, ',');
System.out.println(delimetedCommaString);
}
}