2015-11-02 73 views
3

我需要构造一个接收矩阵作为参数并打印其行的方法。例如,该方法会得到以下Java中的打印矩阵行

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] + " "); 
     } 
    } 
} 

不过,这并不在我想要的方式打印。它打印这样的,我想弄清楚如何解决它。

​​

回答

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); 
} 
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(""); 
} 
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(); 
    } 
} 
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 " + i + " : "); 
     for (int j = 0; j < matrix[i].length; ++j) { 
      System.out.print(matrix[i][j] + " "); 
     } 
     System.out.println(); 
    } 
}