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

新手上路,请多包涵

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

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

原文由 Jame 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 719
2 个回答

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

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

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


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

原文由 AlexR 发布,翻译遵循 CC BY-SA 3.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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题