Мне было интересно, что лучший способ печати в 2D массива. Это код, который я есть, и я был просто интересно, если это хорошая практика или нет. Также поправьте меня в каких-либо других ошибок, которые я сделал в этом коде, если вы найдете любой. Спасибо!
int rows = 5;
int columns = 3;
int[][] array = new int[rows][columns];
for(int i = 0; i<rows; i++)
for(int j = 0; j<columns; j++)
array[i][j] = 0;
for(int i = 0; i<rows; i++)
{
for(int j = 0; j<columns; j++)
{
System.out.print(array[i][j]);
}
System.out.println();
}
Вы можете печатать в простой путь.
Используйте ниже, чтобы распечатать в 2D массив
int[][] array = new int[rows][columns];
System.out.println(Arrays.deepToString(array));
Используйте ниже, чтобы распечатать массив 1Д
int[] array = new int[size];
System.out.println(Arrays.toString(array));
Простой и чистый способ печати в 2D массива.
System.out.println(Arrays.deepToString(array).replace("], ", "]\n").replace("[[", "[").replace("]]", "]"));
Нет ничего плохого в том, что у вас есть. Дважды вложенных циклов должны быть легко усваивается теми, кто читает ваш код.
Что сказал, следующую формулировку плотнее и более идиоматические Ява. Я'd предлагает ковыряться некоторые статические классы как массивы и сборники раньше, чем позже. Тонны шаблонного могут быть сбриты по их эффективному использованию.
for (int[] row : array)
{
Arrays.fill(row, 0);
System.out.println(Arrays.toString(row));
}
Два лайнера с новой строки:
for(int[] x: matrix)
System.out.println(Arrays.toString(x));
Один лайнер без новой строки:
System.out.println(Arrays.deepToString(matrix));
|1 2 3|
|4 5 6|
Используйте код ниже, чтобы распечатать значения.
System.out.println(Arrays.deepToString());
Вывод будет выглядеть следующим образом (все матрицы в одну строку):
[[1,2,3],[4,5,6]]
@Ашика'ы ответ работает фантастически, если вы хотите (0,0) должны быть представлены в верхнем, левом углу, в нормальная конвенции в CS. Однако, если вы предпочитаете использовать обычные математические конвенции и Put (0,0) в левом нижнем углу, вы могли бы использовать это:
LinkedList<String> printList = new LinkedList<String>();
for (char[] row: array) {
printList.addFirst(Arrays.toString(row));;
}
while (!printList.isEmpty())
System.out.println(printList.removeFirst());
Этом используется принцип LIFO (последним пришел-первым вышел), чтобы изменить порядок во время печати.
Из Оракул Официальный Док На Java 8:
публичная статическая строка deepToString(объект[] а)`
возвращает строковое представление в "глубоком содержании" из В указанный массив. Если массив содержит другие массивы как элементы, строковое представление содержит их содержание и так далее. Этот метод предназначен для преобразования многомерных массивов в строки.
Попробуйте это,
for (char[] temp : box) {
System.err.println(Arrays.toString(temp).replaceAll(",", " ").replaceAll("\\[|\\]", ""));
}