在Java中是否有任何内置的方法允许我们将逗号分隔的字符串转换为一些容器(例如数组,列表或向量)?或者我需要为此编写自定义代码吗?
String commaSeparated = "item1 , item2 , item3";
List<String> items = //method that converts above string into list??
在Java中是否有任何内置的方法允许我们将逗号分隔的字符串转换为一些容器(例如数组,列表或向量)?或者我需要为此编写自定义代码吗?
String commaSeparated = "item1 , item2 , item3";
List<String> items = //method that converts above string into list??
当前回答
下面是另一个转换CSV到ArrayList的例子:
String str="string,with,comma";
ArrayList aList= new ArrayList(Arrays.asList(str.split(",")));
for(int i=0;i<aList.size();i++)
{
System.out.println(" -->"+aList.get(i));
}
打印你
——>字符串 ——> ——>逗号
其他回答
我通常使用预编译模式的列表。而且这也更通用一些,因为它可以考虑一些listToString表达式后面的括号。
private static final Pattern listAsString = Pattern.compile("^\\[?([^\\[\\]]*)\\]?$");
private List<String> getList(String value) {
Matcher matcher = listAsString.matcher((String) value);
if (matcher.matches()) {
String[] split = matcher.group(matcher.groupCount()).split("\\s*,\\s*");
return new ArrayList<>(Arrays.asList(split));
}
return Collections.emptyList();
在groovy中,你可以使用tokenize(Character Token)方法:
list = str.tokenize(',')
在Java 8中将集合转换为逗号分隔的字符串
listOfString对象包含["A","B","C","D"]个元素-
listOfString.stream().map(ele->"'"+ele+"'").collect(Collectors.joining(","))
输出结果为:- ' A ', ' B ', ' C ', ' D '
和转换字符串数组到列表在Java 8
String string[] ={"A","B","C","D"};
List<String> listOfString = Stream.of(string).collect(Collectors.toList());
在Kotlin中,如果你的字符串列表像这样,你可以使用这行代码将字符串转换为数组列表
var str= "item1, item2, item3, item4"
var itemsList = str.split(", ")
你可以先使用String.split(",")分割它们,然后使用Arrays.asList(array)将返回的String数组转换为数组列表