假设我们有List<String>一些包含分隔符的值,,我们如何将 split 和 merge 转换为List<String>没有分隔符的 a ,?
输入:[ "1,2", "3,4", "5" ]
输出:[ "1", "2", "3", "4", "5" ]
命令式代码
List<String> input = Arrays.asList("1,2", "3,4", "5");
List<String> output = new ArrayList<>();
for (String str : input) {
for (String split : str.split(",")) {
output.add(split);
}
}
Run Code Online (Sandbox Code Playgroud)
你可以用Streams来做到:
List<String> output = input.stream()
.flatMap(s -> Arrays.stream(s.split(",")))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
例如,
List<String> input = Arrays.asList("1,2", "3,4", "5" );
List<String> output = input.stream()
.flatMap(s -> Arrays.stream(s.split(",")))
.collect(Collectors.toList());
System.out.println (output);
Run Code Online (Sandbox Code Playgroud)
会输出
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)