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
*/