以Matrix格式打印出二维数组

daw*_*ife 16 java

如何以矩阵框格式打印出一个简单的int [] [],就像我们手写矩阵的格式一样.简单的循环运行显然不起作用.如果它有助于我尝试在linux ssh终端中编译此代码.

for (int i = 0; i < rows; i++) {
    for (int j = 0; j < cols; j++) {
        System.out.println(matrix[i][j] + " ");
    }
    System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

Tyl*_*eat 31

final int[][] matrix = {
  { 1, 2, 3 },
  { 4, 5, 6 },
  { 7, 8, 9 }
};

for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix[i].length; j++) {
        System.out.print(matrix[i][j] + " ");
    }
    System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

生产:

1 2 3
4 5 6
7 8 9
Run Code Online (Sandbox Code Playgroud)


sti*_*vlo 19

要正确设置列中的数字格式,最好使用printf.根据最大或最小数字的大小,您可能需要调整模式"%4d".例如,允许Integer.MIN_VALUE和之间的任何整数Integer.MAX_VALUE,使用"%12d".

public void printMatrix(int[][] matrix) {
    for (int row = 0; row < matrix.length; row++) {
        for (int col = 0; col < matrix[row].length; col++) {
            System.out.printf("%4d", matrix[row][col]);
        }
        System.out.println();
    }
}
Run Code Online (Sandbox Code Playgroud)

示例输出:

 36 913 888 908
732 626  61 237
  5   8  50 265
192 232 129 307
Run Code Online (Sandbox Code Playgroud)


Yuu*_*uta 13

int[][] matrix = {
    {1,2,3},
    {4,5,6},
    {7,8,9},
    {10,11,12}
};

printMatrix(matrix);

public void printMatrix(int[][] m){
    try{
        int rows = m.length;
        int columns = m[0].length;
        String str = "|\t";

        for(int i=0;i<rows;i++){
            for(int j=0;j<columns;j++){
                str += m[i][j] + "\t";
            }

            System.out.println(str + "|");
            str = "|\t";
        }

    }catch(Exception e){System.out.println("Matrix is empty!!");}
}
Run Code Online (Sandbox Code Playgroud)

输出:

|   1   2   3   |
|   4   5   6   |
|   7   8   9   |
|   10  11  12  |
Run Code Online (Sandbox Code Playgroud)


Dal*_*len 5

Java 8方式:

import java.util.Arrays;

public class MatrixPrinter {
  public static void main(String[] args) {
    final int[][] matrix = new int[4][4];
    printMatrix(matrix);
  }

  public static void printMatrix(int[][] matrix) {
    Arrays.stream(matrix).forEach((row) -> {
      System.out.print("[");
      Arrays.stream(row).forEach((el) -> System.out.print(" " + el + " "));
      System.out.println("]");
    });
  }
}
Run Code Online (Sandbox Code Playgroud)

这产生:

[ 0  0  0  0 ]
[ 0  0  0  0 ]
[ 0  0  0  0 ]
[ 0  0  0  0 ]
Run Code Online (Sandbox Code Playgroud)

但是既然我们在这里,为什么不使行布局可定制?

我们所需要的只是将一个 Lamba 传递给该matrixPrinter方法:

[ 0  0  0  0 ]
[ 0  0  0  0 ]
[ 0  0  0  0 ]
[ 0  0  0  0 ]
Run Code Online (Sandbox Code Playgroud)

这是结果:

 0  0  0 
 0  0  0 
 0  0  0 

| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |

[ 0  0  0 ]
[ 0  0  0 ]
[ 0  0  0 ]
Run Code Online (Sandbox Code Playgroud)