当前位置: 首页 > 知识库问答 >
问题:

我有一个包含字符串的列表。我如何在每一个上面使用.split()(与forEach一起使用)?[副本]

怀展
2023-03-14

我有一张这样的单子:

List<String> listStrings = new ArrayList<String>(); 
listStrings.add("12 14 15"); 
listStrings.add("15 13 17"); 
listStrings.add("14 15 13"); 

如何在“”处使用.split()拆分列表中的每个字符串,而不使用for/while循环?

新列表newList的外观:

List<String> newList {"12", "14, "15", "15", ...}

(“Why cant you use lops like for/while”->这是一个任务,我必须练习使用流。)

事先谢谢。

共有1个答案

祁彬
2023-03-14

创建列表不需要任何循环,只需收集流即可

Stream.of("12 14 15", "15 13 17", "14 15 13")  // Stream<String>
  .map(s -> s.split(" "))  // Stream<String[]>
  .flatMap(Stream::of) // Stream<String>
  .collect(Collectors.toList());  // List<String>

如果必须以列表开头,请将第一行替换为ListStrings.Stream()

参见此处示例

Stream.of("12 14 15", "15 13 17", "14 15 13").
  .map(s -> s.split(" "))  // Stream<String[]>
  .flatMap(Stream::of) // Stream<String>
  .forEach(s -> newList.add(s));
 类似资料: