Как преобразовать двумерный массив int в одну строку, используя потоки? - PullRequest
0 голосов
/ 06 июля 2019

Я пытаюсь преобразовать двумерный массив 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

Как я могу получить что-то похожее на joined, но с двумерными массивами и с использованием потоков?

1 Ответ

5 голосов
/ 06 июля 2019

Вы можете использовать что-то вроде этого:

 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".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...