Как напечатать значения из определенного столбца - PullRequest
0 голосов
/ 12 февраля 2019

поэтому я пытаюсь выяснить, как я могу напечатать определенный столбец из заданного массива, и я полностью застрял.Мне удалось напечатать всю матрицу, но не удалось сделать это в определенном столбце.

это для школы

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 ]

0 голосов
/ 12 февраля 2019

Ну, во-первых, вам не нужно делать вложенные циклы.Если вы хотите выполнить итерацию по всей матрице, вам нужно вложить циклы - один для X и один для Y, но, поскольку вы уже знаете столбец, тогда одного цикла будет достаточно.

    for (int j = 0; j < mat[col].length; j++) {
        temp = mat[col][j];
        System.out.println(temp);
    }
0 голосов
/ 12 февраля 2019

При доступе к двумерному массиву 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());
}
...