Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我有一个包含字符串的列表。如何在每个文件上使用.split()(与forEach一起使用)?_Java_String_List_Foreach_Split - Fatal编程技术网

Java 我有一个包含字符串的列表。如何在每个文件上使用.split()(与forEach一起使用)?

Java 我有一个包含字符串的列表。如何在每个文件上使用.split()(与forEach一起使用)?,java,string,list,foreach,split,Java,String,List,Foreach,Split,我不能像for/while那样使用循环。forEach没问题 我有这样一份清单: List<String> listStrings = new ArrayList<String>(); listStrings.add("12 14 15"); listStrings.add("15 13 17"); listStrings.add("14 15 13"); List listStrings=new ArrayList(); 添加(“12 14 15”); 添加(

我不能像for/while那样使用循环。forEach没问题

我有这样一份清单:

List<String> listStrings = new ArrayList<String>(); 
listStrings.add("12 14 15"); 
listStrings.add("15 13 17"); 
listStrings.add("14 15 13"); 
List listStrings=new ArrayList();
添加(“12 14 15”);
添加(“15 13 17”);
添加(“14 15 13”);
如何在“”处使用此列表中的.split()拆分每个字符串,而不使用 for/while循环

新列表newList应该是什么样子的:

List<String> newList {"12", "14, "15", "15", ...}
List新列表{“12”、“14”、“15”、“15”、…}
(“为什么你不能使用像for/while“->这样的循环来完成任务,我必须练习使用流。)


提前感谢。

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

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>

如果我们为您这样做,我们会练习,但您不会。为什么不阅读文档并尝试一些东西呢?这就是一个人的练习方式。我已经做了。我发现的只是一个人拆分一个字符串并将其拆分的部分保存在数组中。这对我没有帮助。@okaycoolG,使用
flatmap
将列表中的每个元素展平,然后在《代码》的基础“如果您知道如何循环字符串,并且还知道如何拆分一个字符串,那么您可以拆分多个字符串:您循环字符串,并为每个字符串拆分。你至少应该试着这样做。当然这不是理想的解决方案。但您要求使用forEach解决方案。阅读你的问题。练习时,先从简单的事情开始更容易。@okaycoolG,是的,使用
我希望看到一些解释,而不仅仅是发布一个答案。这对新手没有帮助。谢谢你的快速回答。除了Arrays.stream部分,我什么都懂。当我对列表进行流式处理时,为什么我必须使用array.stream?@好的
String.split
返回什么?@cricket\u 007哦,好的,使用拆分字符串的数组。当然谢谢你的快速回答和解释。
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));