2013-11-29 121 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,涵盖那 –