Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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 流式处理二维数组,修剪值并收集回二维数组_Java_Multidimensional Array_Stream - Fatal编程技术网

Java 流式处理二维数组,修剪值并收集回二维数组

Java 流式处理二维数组,修剪值并收集回二维数组,java,multidimensional-array,stream,Java,Multidimensional Array,Stream,您知道如何使用Java stream API对2d字符串数组(如3x3)执行修剪操作,并将一个字符串收集回相同维度的3x3数组吗 关键是要避免使用显式for循环 当前的解决方案是简单地执行for循环,如: 字符串arr[][]={ {单词,单词}, {单词,单词}, {word,word}}; 对于int i=0;iIntStream.range0,arr[i]。长度 .forEachj->arr[i][j]=arr[i][j].trim; //输出 Arrays.streamarr.mapAr

您知道如何使用Java stream API对2d字符串数组(如3x3)执行修剪操作,并将一个字符串收集回相同维度的3x3数组吗

关键是要避免使用显式for循环

当前的解决方案是简单地执行for循环,如:

字符串arr[][]={ {单词,单词}, {单词,单词}, {word,word}}; 对于int i=0;i这是可行的,但我正在尝试用流式API实现同样的效果。

请首先确定您是希望创建具有相同维度的新2D数组,还是希望将修剪后的字符串存储回现有数组中。这两种方法都是可能的,但都不难做到

你的问题听起来更像是想要一个具有相同维度的新数组。如果是这样,我觉得streams适合这份工作,并推荐Ravinfra Ranwala的答案,它很好。 问题中的代码将修剪后的字符串存储回现有数组。如果您想要这样做并且不想使用循环,我建议您也不要使用流,但是: 字符串arr[][]={ {单词,单词}, {单词,单词}, {word,word}}; Arrays.asListarr.forEachinner-> Arrays.asListinner.replaceAllString::trim; System.out.printlnArrays.deeptostringar; 此代码段的输出为:
[[word, word], [word, word], [word, word]]
为数组创建列表视图。对列表的更改会写回数组,这正是我们所需要的。

您可以使用Arrays.stream-to-stream数组,如中所示:

arr=Arrays.stream(arr).map(s -> Arrays.stream(s).map(a->a.trim()).toArray(String[]::new)).toArray(String[][]::new);

您可以先对第一个维度进行流式处理,然后再对第二个维度进行流式处理。

您可以处理当前数组,而无需使用以下方法创建新数组:

字符串[][]arr={ {单词,单词}, {单词,单词}, {word,word}}; IntStream.range0,arr.length .forEachi->IntStream.range0,arr[i]。长度 .forEachj->arr[i][j]=arr[i][j].trim; //输出 Arrays.streamarr.mapArrays::toString.forEachSystem.out::println; 输出:

[word, word]
[word, word]
[word, word]