Java 中是否有任何内置方法允许我们将逗号分隔的字符串转换为某个容器(例如数组、列表或向量)?还是我需要为此编写自定义代码?
String commaSeparated = "item1 , item2 , item3";
List<String> items = //method that converts above string into list??
原文由 Jame 发布,翻译遵循 CC BY-SA 4.0 许可协议
Java 中是否有任何内置方法允许我们将逗号分隔的字符串转换为某个容器(例如数组、列表或向量)?还是我需要为此编写自定义代码?
String commaSeparated = "item1 , item2 , item3";
List<String> items = //method that converts above string into list??
原文由 Jame 发布,翻译遵循 CC BY-SA 4.0 许可协议
Arrays.asList
返回一个固定大小的 List
由数组支持。如果你想要一个普通的可变 java.util.ArrayList
你需要这样做:
List<String> list = new ArrayList<String>(Arrays.asList(string.split(" , ")));
或者,使用 番石榴:
List<String> list = Lists.newArrayList(Splitter.on(" , ").split(string));
使用 Splitter
可以让您更灵活地拆分字符串,并使您能够跳过结果中的空字符串和修剪结果。与 String.split
相比,它的怪异行为更少,并且不需要您按正则表达式拆分(这只是一种选择)。
原文由 ColinD 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
将逗号分隔的字符串转换为列表
上面的代码在定义为的分隔符上拆分字符串:
zero or more whitespace, a literal comma, zero or more whitespace
这会将单词放入列表中并折叠单词和逗号之间的任何空格。请注意,这仅返回数组上的包装器:例如
.remove()
不能 从结果List
中返回。对于实际的ArrayList
您必须进一步使用new ArrayList<String>
。