簡體   English   中英

使用二維數組的Java控制台輸出

[英]Java console output using two dimensional arrays

我正在尋找有關如何從左到右打印二維數組的見識,而不是在頁面上用換行符層疊。

我已經為一個大學的AI課程編寫了一個簡單的程序,可以解決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都有一個指向其祖先的指針。 因此,我可以輕松地將指針向后移動並全部打印出來。

我不會在這里詳細介紹實現細節,但是您可以按照以下步驟進行操作

  • 打印每個矩陣的所有頂部行,因此您將得到一個類似

[1 2 3] [1 2 3]

  • 添加換行符,然后打印所有矩陣的下一行。

[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]

本質上,您迭代每個等於其高度的矩陣。 如果它們的高度不同,則可以開始跳過較短的高度,而只需在其位置留一個空白。

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

可以而且應該改進

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM