提问者:小点点

如何使用流将二维int数组转换为单个字符串?


我正在尝试将二维int数组转换为单个int,其中每个数字之间有一个空格,并且在使用流的每个单个数组之后有一个换行符。

我已经为使用mapToObj的单维数组轻松完成了这一点,但当流由数组而不是整数组成时,情况并非如此。

int[] a = {1, 2, 3, 4};

String[] strArray = Arrays.stream(a).mapToObj(String::valueOf).toArray(String[]::new);

String joined = String.join(" ", strArray);

a会映射到这里的1 2 3 4。我想要的是有这样的东西

int[][]a={{1,2,3},{4,5,6},{7,8,9}};

地图来

1 2 3
4 5 6 
7 8 9

如何获得类似于join的东西,但使用二维数组并且仍然使用流?


共1个答案

匿名用户

你可以使用这样的东西:

 String output = Arrays.stream(a)
                .map(ints -> IntStream.of(ints).mapToObj(String::valueOf).collect(Collectors.joining(" ")))
                .collect(Collectors.joining("\n"));

输出将是:

1 2 3
4 5 6
7 8 9

首先,我们将每个整数数组映射到一个字符串,该字符串由空格分隔的整数组成,然后我们收集那些用“\n”连接它们的字符串。