通过二维数组向后循环

时间:2013-11-29 04:23:17

标签: java multidimensional-array reverse nested-loops

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 公元前 C d 德 高清 Ë EF F ...........

如何切换for循环,使其显示如下: C CB CBA b BA 一个 F FE 美联储 ED Ë d

˚F FE 美联储 Ë ED d C CB CBA b BA 一个

2 个答案:

答案 0 :(得分: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);
        }
    }
}
}

答案 1 :(得分: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--) {
    }
  }
}