如何通过使用流API将单独单词的字符串转换为列表的单独元素

时间:2018-07-16 14:05:09

标签: java java-8 java-stream

尝试研究Stream API。 所以,我有一个这样的字符串列表:

118.111.97.113
119.122.122.122
122.122.122.97
122.122.122.99
122.122.122.100

我需要将其除以'.',并将单独的数字作为单独的值放入新集合中。 像这样:

118
111
97
113
119
...

我了解flatMap方法,该方法可以假定一个值并返回多个值,但是如何正确使用它却一无所知。您能帮我还是提些想法?

谢谢!

2 个答案:

答案 0 :(得分:5)

你可以做

List<String> initial;
List<String> all = initial.stream().flatMap(str -> Arrays.stream(str.split("\\.")))
                                   .collect(Collectors.toList());

答案 1 :(得分:5)

仅此一行:

Pattern p = Pattern.compile("\\.");
yourStreamOfStrings.flatMap(p::splitAsStream)
            .collect(Collectors.toList());