如何将逗号分隔的字符串转换为列表?

2022-08-31 04:12:25

Java中是否有任何内置方法允许我们将逗号分隔的字符串转换为某些容器(例如数组,列表或矢量)?还是我需要为此编写自定义代码?

String commaSeparated = "item1 , item2 , item3";
List<String> items = //method that converts above string into list??

答案 1

将逗号分隔的字符串转换为列表

List<String> items = Arrays.asList(str.split("\\s*,\\s*"));

上面的代码将字符串拆分为定义为:的分隔符,该分隔符将单词放入列表中,并折叠单词和逗号之间的任何空格。zero or more whitespace, a literal comma, zero or more whitespace


请注意,这只返回数组上的包装器:例如,您不能从结果中返回。对于实际,您必须进一步使用 。.remove()ListArrayListnew ArrayList<String>


答案 2

Arrays.asList返回由数组支持的固定大小。如果你想要一个普通的可变变量,你需要这样做:Listjava.util.ArrayList

List<String> list = new ArrayList<String>(Arrays.asList(string.split(" , ")));

或者,使用番石榴

List<String> list = Lists.newArrayList(Splitter.on(" , ").split(string));

使用 a 可以更灵活地拆分字符串,并使您能够跳过结果中的空字符串并修剪结果。它也有比不需要你按正则表达式拆分的怪异行为(这只是一个选项)。SplitterString.split