使用二维数组的Java控制台输出

时间:2013-03-22 16:52:07

标签: java

我正在寻找有关如何从左到右打印二维数组的见解,而不是使用换行符将页面级联下来。

我为本科生A.I.编写了一个简单的程序。当然,它解决了那些小小的9场比赛。

public void printNode(){
    for(int i = 0; i < 3; i ++){
        System.out.printf("[ ");
        for(int k = 0; k < 3; k++){
            System.out.printf(" " + state[i][k] + " ");
        }
        System.out.printf("]\n");
    }
}

这打印二维数组没有问题。

但是我正在寻找一种从左到右打印数组的方法,所以我不需要翻过50多页的转换来证明我的程序是有效的。有人解决过这个问题吗?

[ 1 2 3 ] [1 2 3]
[ 8 0 4 ] [8 0 4]
[ 7 6 5 ] [7 6 5]

这是我想要创造的效果。转换的解决方案路径是一系列指向链返回的指针。我的每个Node都有一个指向其祖先的指针。所以我可以轻松地按照指针返回并打印出来。

2 个答案:

答案 0 :(得分:0)

我不会在这里介绍实现细节,但是这里有一些步骤

  • 打印每个矩阵的所有顶行,因此您将拥有类似
  • 的字符串
  

[1 2 3] [1 2 3]

  • 添加换行符,然后打印所有matricies的下一行。
  

[1 2 3] [1 2 3]
  [8 0 4] [8 0 4]

  • 继续,直到打印整个矩阵。
  

[1 2 3] [1 2 3]
  [8 0 4] [8 0 4]
  [7 6 5] [7 6 5]

基本上你遍历每个矩阵等于它们的高度。如果它们具有不同的高度,您可以开始跳过较短的高度,并在它的位置留下一个空白区域。

答案 1 :(得分:0)

public void printTwoNodes(int arr[], int arr2[]){
    for(int i = 0; i < 3; i ++){
        System.out.printf("[ ");
        for(int k = 0; k < 3; k++){
            System.out.printf("" + arr[i][k] + " ");
        }
        System.out.printf("]");
        System.out.printf("[ ");
        for(int j = 0; j < 3; j++){
            System.out.printf("" + arr2[i][j] + " ");
        }
        System.out.printf("]\n");
    }
}

可以而且应该改进