本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看<活动链接>
问题:
如何将逗号分隔的字符串转换为列表?
Java中有没有内置的方法可以将逗号分隔的字符串转换成某种容器(例如数组、列表或向量)?
或者我需要编写自定义代码实现?
String commaSeparated = "item1 , item2 , item3";
List<String> items = //实现转换代码??
热门答案:
答案1:
将逗号分隔的字符串转换为列表:
List<String> items = Arrays.asList(str.split("\\s*,\\s*"));
上面的代码将分隔符隔开的字符串拆分,分隔符为:零个或多个空格、文字逗号、零个或多个空格。然后将这些分割好的单词放入列表中,并且去除了拆分单词和逗号之间的空格。
请注意,这只返回数组的包装类:例如,不能从结果列表中删除.remove()。如果要实际使用ArrayList,必须进一步使用new ArrayList进行包装。
答案2:
Arrays.asList返回由数组支持的固定大小的列表。如果您想要一个普通的可变java.util.ArrayList,则需要执行以下操作:
List<String> list = new ArrayList<String>(Arrays.asList(string.split(" , ")));
或者使用Guava:
List<String> list = Lists.newArrayList(Splitter.on(" , ").split(string));
使用拆分器可以更灵活地拆分字符串,还可以跳过结果中的空字符串和修剪结果。它的行为也没有String.split那么奇怪,而且不需要使用regex进行拆分(这只是一个选项)。
文章翻译自Stack Overflow