How to convert matrix (2D Array) of numbers to string in Java

1 Answer

0 votes
import java.util.Arrays;
import java.util.stream.Collectors;

public class MatrixToStringConverter {
    public static String convertMatrixToString(int[][] matrix) {
        int[] sizesarr = new int[matrix[0].length];
        Arrays.fill(sizesarr, 0);

        String result = Arrays.stream(matrix)
                    .map(a -> Arrays.stream(a)
                    .mapToObj(String::valueOf)
                    .map(str -> {
                        if (sizesarr[0] < str.length()) {
                            sizesarr[0] = str.length();
                        }
                        return str;
                    })
                    .map(str -> String.format("%s", str))
                    .collect(Collectors.joining(" ")))
                    .collect(Collectors.joining("\n"));

        return result.trim();
    }

    public static void main(String[] args) {
        int[][] matrix = {
                {4, 7, 9, 18, 29, 0},
                {1, 9, 18, 99, 4, 3},
                {9, 17, 89, 2, 7, 5},
                {19, 49, 6, 1, 9, 8},
                {29, 4, 7, 9, 18, 6}
        };

        String str = convertMatrixToString(matrix);
        System.out.println(str);
    }
}



/*
run:

4 7 9 18 29 0
1 9 18 99 4 3
9 17 89 2 7 5
19 49 6 1 9 8
29 4 7 9 18 6

*/

 



answered Jul 15, 2024 by avibootz
...