2009-11-29 48 views
0

我已經創建了二維數組,並且想要打印輸出。我想標記列和行。我已經標記了行。但我無法弄清楚如何標記列。一些鏈路此:標記2D java數組

A B C D E F 

行1 * * * * * *
行2 * * * * * *
行3 * * * * * *
行4 * * * * * *
行5 * * * * * *
行6 * * * * * *
行7 * * * * * *
行8 * * * * * *
行9 * * * * * *
第10行* * * * * *
行11 * * * * * *
行12 * * * * * *
行13 * * * * * *

就像我說我行和*,但我怎麼得到列上有一個bc標籤。

for(int i = 1; i < 13; i++) 
{ 
    System.out.print("Row " + i + " "); 

    for(int j = 0; j < 6; j++) 
    { 
     System.out.print(seats[i][j] + " "); 

     } 
     System.out.println(); //for spacing 
    } 
+0

你的意思是你想用電子表格樣式來標記列,例如'A','B'...'AA','AB'...? – pstanton 2009-11-29 22:35:19

+0

是的,這是正確的 – 2009-11-29 22:35:52

回答

2

假設你知道你多少列有,它是小於26,你可以在添加到您的代碼的開始......

for (int j = 0; j < seats[0].length; j++) 
    System.out.print(((char) ('A' + j)) + "\t"); 
System.out.println(); 

會過去的26是有點複雜,讓我知道如果你需要那個。

+0

不,我只需要一個通過e,所以這個工程。謝謝 – 2009-11-29 22:41:36

+0

通過使用數組的實際長度來確定範圍,使代碼更具可擴展性是一個不錯的主意。即不是在循環定義中硬編碼6列,而是使用seats [0] .length,而不是在其他循環中使用13來使用seats.length。 – pstanton 2009-11-29 22:45:46

0

只需在問題出在循環之前一樣

System.out.println("  A B C D E F"); 

補充一下。

我假設數組中的每個元素都是單個字符寬度,如果不是這樣,則相應地進行相應調整。另外,前面的空格將解釋每個後續行中顯示的「Row ##」標題。

另外[問題無關的],而不是使用硬編碼值爲循環(這裏6和13)的限制,使用陣列長度屬性代替,即

for(int i = 1; i < seats.length; i++) 
{ 
    System.out.print("Row " + i + " "); 

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

     } 
     System.out.println(); //for spacing 
    } 
0

您可能需要做兩件事 - 創建標籤並格式化輸出。要創建標籤我會做類似

char a = 'A'; 
for(int j = 0; j < 6; j++) { 
    char label = a+j; 
    System.out.print(label); 
    System.out.print(" "); 
} 
System.out.println(); 

但這會給出一個混亂的輸出。

我會親自創建一個HTML表格來執行格式化 - 自己完成這項工作非常繁瑣。