像Java一样在Java中打印2d数组

时间:2014-01-06 21:58:16

标签: java arrays eclipse

我想像桌子一样打印一个输入的二维数组 即如果由于某种原因,他们全部放入... ...

1 1 1 1 

1 1 1 1 

1 1 1 1

1 1 1 1 

就像上面这样但是在Java eclipse的控制台上,没有花哨的按钮和GUI,但是在控制台中,这就是我所拥有的......

    import java.util.Scanner;
    public class Client {
        public static void main(String[] args){
            Scanner input = new Scanner(System.in);

            int[][] table = new int[4][4];
            for (int i=0; i < table.length; i++) {
                for (int j=0; j < table.length; j++) {
                    System.out.println("Enter a number.");
                    int x = input.nextInt();
                    table[i][j] = x;
                    System.out.print(table[i][j] + " "); 
                } 
                    System.out.println();
        }
        System.out.println(table);
    }
}

当我输入所有内容并且控制台终止时,这就是我得到的结果:

Enter a number.

1

1 Enter a number.

1

1 Enter a number.

1

1 Enter a number.

1

1 

[[I@3fa1732d

5 个答案:

答案 0 :(得分:6)

考虑使用java.util.Arrays

那里有一种名为deepToString的方法。这将在这里工作得很好。

System.out.println(Arrays.deepToString(table));

此处相关:Simplest way to print an array in Java

答案 1 :(得分:1)

您需要与输入数字分开打印数组。所以你可以这样做:

public class PrintArray {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int[][] table = new int[4][4];
        for (int i = 0; i < table.length; i++) {
            for (int j = 0; j < table.length; j++) {
                // System.out.println("Enter a number.");
                int x = input.nextInt();
                table[i][j] = x;
            }
            //System.out.println();
        }
        // System.out.println(table);

        for (int i = 0; i < table.length; i++) {
            for (int j = 0; j < table[i].length; j++) {
                System.out.print(table[i][j] + " ");
            }
            System.out.println();
        }
    }
}

答案 2 :(得分:0)

您将循环返回这些数组以打印出内容。数组的toString()只打印参考值。

答案 3 :(得分:0)

System.out.print(table)调用数组类中的方法,该方法打印出vairable的标识符。你需要创建一个for循环来打印出像System.out.print(table [i] [j])这样的每个元素,或者使用Arrays类并说出Arrays.toString(table);

答案 4 :(得分:0)

尝试将这个简单的for循环复制到打印4x4表:

 Scanner input = new Scanner();
    int numArray [] [] = new int [4] [4];
    for ( int c = 0; c < 4; c++ ) {
    for (int d = 0; d < 4; d++) { 
    System.out.print("Enter number : ");
    nunArray [c][d] = input.nextInt();
    } 
    }
    for (int a = 1; a<5;a++) {
    for (int b = 1; b <5;b++) {
    System.out.print(numArray [a][b]+" ");
    }
    System.out.println();
    }