Как напечатать значения из определенного столбца
Поэтому я пытаюсь выяснить, как я могу напечатать определенный столбец из данного массива, и я полностью застрял. Мне удалось напечатать всю матрицу, но не удалось сделать это в определенном столбце.
это для школы
public class ex_1 {
public static void main(String[] args) {
int[][] arr = {{-1, -1, 1, 2, 3, -1},
{-1, 4, 5, 1, -1, -1},
{-1, -1, 6, 5, 4, 3},
{-1, 2, 5, 3},
{1, 2, 1}};
getNumFromCol(arr, 1);
}
public static int getNumFromCol(int[][] mat, int col) {
int temp = 0;
for (int i = 0; i < mat.length; i++) {
for (int j = 0; j < mat[i].length; j++) {
if (mat[i][j] != -1) {
temp = mat[col][j];
}
}
System.out.print(temp);
}
return temp;
}
}
422
2 ответа
Ну, во-первых, вам не нужно делать вложенные циклы. Если вы хотите выполнить итерацию по всей матрице, вам нужно вложить циклы - один для X и один для Y, но, поскольку вы уже знаете столбец, тогда одного цикла будет достаточно.
for (int j = 0; j < mat[col].length; j++) {
temp = mat[col][j];
System.out.println(temp);
}
При доступе к двумерному массиву matrix
вам нужно дать matrix[i][j]
где i
это номер строки и j
это номер столбца.
Так что если вы хотите напечатать определенный столбец col
, вам нужно распечатать товар на позиции col
для каждой строки в вашей матрице. Это будет выглядеть так:
public static void printColumn(int[][] matrix, int col) {
for (int[] row: matrix) {
System.out.println(row[col]);
}
}
Заметка
Если вам нужен красивый формат для вашего столбца, вы можете использовать StringBuilder для создания выходных данных шаг за шагом. Например, если вы хотите отформатировать столбец как [1, 2, 3, 4, 5]
, это будет выглядеть так
public static void printColumn(int[][] matrix, int col) {
StringBuilder sb = new StringBuilder();
sb.append("[ ");
for (int[] row: matrix) {
sb.append(row[col]).append(' ');
}
sb.append(']');
System.out.println(sb.toString());
}