2015-11-30 74 views
0

這是我一直試圖解決幾個小時的學校的任務,我們要創建一個包含3行10列瑞典字母表的矢量圖。顯示圖表並顯示它在相同的空間中反轉,字母表應該是,它應該是一個字符而不是字符串。現在看起來我在輸出中只有三列,所以大部分字母都沒有。 這是怎麼回事?爲什麼當我而不是使用「alpha.length」使用3和10給我一個「java.lang.ArrayIndexOutOfBoundsException」並且不會打印出反向列表?Java 2D圖表不會打印出

public static void main(String[] args) { 

    char [][]alpha ={ 
     {'A','B','C','D','E','F','G','H','I','J'}, 
     {'K','L','M','N','O','P','Q','R','S','T',}, 
     {'U','V','W','X','Y','Z','Å','Ä','Ö',}, 
     }; 




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

      } 

     for (int r = alpha.length-1; r >= 0; r--){ 
     for (int s = alpha.length-1; s >=0; s--){ 
     System.out.print(alpha[r][s]+ " "); 
    } 
     System.out.println(); 


} 

} //main 
+0

我推薦閱讀關於多維數組和IndexOutOfBoundException。您需要了解如何應對每個單一元素,那麼錯誤將是小菜一碟。 –

+1

'alpha'是一個'char []'的數組,其中包含'alpha.length'(= 3)多個數組,每個'alpha [i]'是'alpha'的一個(不同的)數組, .length(10左右)許多'chars'。如果你嵌套你的循環,你將不得不使用正確的長度。 – zapl

+0

你真的要在這裏使用多維數組嗎? 如果我是對的,你的字母表包含29個字母不是30,所以必須小心,你不能用於在每種情況下達到10的語句。 我會將這些字母存儲在一個單維數組中。瀏覽該數組並觀察循環變量,即i除以10得出一個整數(i%10 == 0)。如果是這樣,請插入一個新行。 –

回答

0

alpha包含3列,所以它的長度是3 現在您的代碼通過一個3x3大小的數組去,這就是爲什麼它只能打印3列(如zapl在評論中提及)。

嘗試是這樣的:

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

    for (int r = alpha.length-1; r >= 0; r--){ 
     for (int s = alpha[r].length-1; s >=0; s--){ 
      System.out.print(alpha[r][s]+ " "); 
     } 
     System.out.println(); 
    } 
... 

這樣,它就會像alpha[0][0](A),然後alpha[0][1](B)... alpha[0][9](J),alpha[1][0](K),alpha[1][1](L).. alpha[1][9](T),alpha[2][0](U)...至alpha[2][8](Ö)。 而且它是相反的順序。

還要注意數組末尾的逗號,你不需要它們。 (我的意思是在'T'和'Ö'之後)。