2013-11-29 163 views
0
String board [][] = [a,b,c] 
        [d,e,f] 

for(int i=0; i<board.length; i++){ 
for(int j=0; j<board[i].length; j++){ 
    String temp = ""; 
    for(int k=j;k<board[i].length;k++){ 
     temp = temp+board[i][k]; 
     System.out.println(temp); 
     if(temp.length()>2){ 
      findWord(temp); 
     } 
    } 
} 
} 

此打印出 一個 AB ABC b BC Ç d 德 DEF Ë EF ˚F ..........通過二維陣列循環向後

我該如何切換for循環,使其顯示如下: c cb cba b BA 一個 ˚F FE 饋 編 Ë d

˚F FE 饋送 Ë 編 d Ç CB CBA b BA 一個

+0

是否要按相反順序顯示數組? –

+3

總是使用完整的源代碼,因此其他人可以很容易地在他們的系統中進行編譯。 –

+0

政策允許編輯重新格式化代碼,但不能更改代碼。 –

回答

0

而不是

for(int i=0; i<board.length; i++) { 
    for(int j=0; j<board[i].length; j++) { 
    String temp = ""; 
    for(int k=j;k<board[i].length;k++) { 
    } 
    } 
} 

你應該啓動計數器數組長度 - 1,測試計數器是否大於或等於0,最後遞減計數器。像這樣

for(int i=board.length-1; i>=0; i--) { 
    for(int j=board[i].length-1; j>=0; j--) { 
    String temp = ""; 
    for(int k=j;k>=0;k--) { 
    } 
    } 
} 
+0

是的 - 這是正確的方法 - 但我認爲k始於'j',而不是'j-1'。 – Floris

0

替換此

for(int i=0; i<board.length; i++){ 
for(int j=0; j<board[i].length; j++){ 

for(int i=board.length; i>-1; i--){ 
for(int j=board[i].length; j>-1; j--){ 

完整的循環

String board [][] = [a,b,c] 
        [d,e,f] 

for(int i=board.length; i>-1; i--){ 
for(int j=board[i].length; j>-1; j--){ 
    String temp = ""; 
    for(int k=j;k<board[i].length;k++){ 
     temp = temp+board[i][k]; 
     System.out.println(temp); 
     if(temp.length()>2){ 
      findWord(temp); 
     } 
    } 
} 
} 
+0

從長度1開始並一路走向== 0(不是> 0)。另外 - 需要向後計數'k'以及... – Floris

+0

我沒有看到我正在尋找的編輯。需要'for(int i = board.length - 1;'etc ... – Floris

+0

> -1,涵蓋那 –