在Java中打印矩阵行

3
我需要构建一个方法,它接收一个矩阵作为参数并打印出它的行。例如,该方法将接收以下矩阵:
int[][] matrix = {
    {3, 1, 2, 7, 2, 5, 6, 2},
    {2, 10, 20, 12, 13},
    {3, 7, 12, 15, 18, 4},
    {2, 11, 21, 12, 13}
};

我需要返回结果

Line 0 : 3 1 2 7 2 5 6 2
Line 1 : 2 10 20 12 13
Line 2 : 3 7 12 15 18 4
Line 3 : 2 11 21 12 13

这是方法:
public static void displayLines(int[][] matrix){    
    for (int i = 0; i < matrix.length; ++i){
        for (int j = 0; j < matrix[i].length; ++j){ 
            System.out.print("Line nb " + i + " : " + matrix[i][j] + " ");
        }
    }
}

但是它没有按照我想要的方式打印。它打印成那样,我正在尝试找出如何解决它。

Line 0 : 3 
Line 0 : 1 
Line 0 : 2 
Line 0 : 7 
Line 0 : 2 
Line 0 : 5 
Line 0 : 6 
Line 0 : 2

// And so on for other lines
5个回答

3
您正在对数组的每个元素调用System.out.print,而不是对数组的每一行进行调用。请按照以下方式修改:

public static void displayLines(int[][] matrix){    
    for (int i = 0; i < matrix.length; ++i){
        System.out.print("Line " + i + " :"); // line header
        for (int j = 0; j < matrix[i].length; ++j){ 
            System.out.print(" " + matrix[i][j]);
        }
        System.out.println(""); // end of line
    }
}

请注意,在每个元素 " " + matrix[i][j] 前添加一个空格以避免尾随的空格。
还要记住,你可以像这样编写第二个for循环。
for (int n : matrix[i]) {
    System.out.print(" " + n);
}

3
如何尝试以下内容:

如何实现:

int rowNumber = 0;
for (int[] row : matrix){
    System.out.println("Line " + (rowNumber++) + " : " + Arrays.toString(row));
}

这将生成

Line 0 : [3, 1, 2, 7, 2, 5, 6, 2]
Line 1 : [2, 10, 20, 12, 13]
Line 2 : [3, 7, 12, 15, 18, 4]
Line 3 : [2, 11, 21, 12, 13]

1
使用下面的代码
public static void displayLines(int[][] matrix){    
    for (int i = 0; i < matrix.length; ++i){
        System.out.print("Line nb " + i + " : " );
        for (int j = 0; j < matrix[i].length; ++j){ 
            System.out.print(matrix[i][j] + " ");
        }
        System.out.println();
    }
}

1
public static void displayLines(int[][] matrix) {    
    for (int i = 0; i < matrix.length; ++i) {
        System.out.print("Line " + i + " : ");
        for (int j = 0; j < matrix[i].length; ++j) { 
            System.out.print(matrix[i][j] + " ");
        }
        System.out.println();
    }
}

0
int[][] matrix = { { 3, 1, 2, 7, 2, 5, 6, 2 }, { 2, 10, 20, 12, 13 },
        { 3, 7, 12, 15, 18, 4 }, { 2, 11, 21, 12, 13 } };
for (int i = 0; i < matrix.length; ++i) {
    System.out.print("Line " + i + " :");
    for (int j = 0; j < matrix[i].length; ++j) {
        System.out.print(matrix[i][j] + "   ");
    }
    System.out.println("");
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接