如何从特定列打印值

时间:2019-02-12 08:55:54

标签: java javahelp

所以即时通讯试图弄清楚如何从给定的数组中打印特定的列,并且即时通讯完全卡住了。 香港专业教育学院设法打印出整个矩阵,但没有设法在特定列上进行打印。

这是上学的

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 :(得分:-1)

访问2D数组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]);
    }
}

注意

如果您希望列的格式为 pretty ,则可以使用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());
}

答案 1 :(得分:-1)

首先,您不需要执行嵌套循环。如果要在整个矩阵上进行迭代,则需要嵌套循环-一个用于X,一个用于Y,但是由于您已经知道该列,因此一个循环就足够了。

    for (int j = 0; j < mat[col].length; j++) {
        temp = mat[col][j];
        System.out.println(temp);
    }