如何将逗号分隔的字符串转换为列表?| Java Debug 笔记

343 阅读1分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接

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

Java中是否有任何内置方法可以将逗号分隔的String转换为某个容器(例如数组,List或Vector)?还是我需要为此编写自定义代码?

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

高分回答:

很多的知识点,真的需要写出来才会掌握!!! \color{purple}很多的知识点,真的需要写出来才会掌握!!!{~}

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

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。

高分回答:

Arrays.asList返回List数组支持的固定大小。如果您想进行正常的可变java.util.ArrayList,则需要执行以下操作:

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

或者,使用guava:

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

使用aSplitter可以更灵活地分割字符串,例如,可以跳过结果中的空字符串并修剪结果。它也比String.split不要求您使用正则表达式分割(这只是一种选择),具有更少的怪异行为。

文章翻译自kgs4h5t57thfb6iyuz6dqtun5y-ac4c6men2g7xr2a-stackoverflow-com.translate.goog/questions/7…

*作者建议:推荐使用流处理方式

List<String> items= Stream.of(commaSeparated.split(","))
     .map(String::trim)
     .collect(toList());

欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!! \color{red}欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!!{~}

有最新、优雅的实现方式,我也会在文末写出我对本问答的见解 \color{red}有最新、优雅的实现方式,我也会在文末写出我对本问答的见解{~}

真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话

求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!

如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️