我正在尝试在2d char数组中切换两个元素,但它不起作用。我在其他类似的问题中也读过,temp变量应该是一维数组,但是我不确定这是真的。谁能帮助我了解为什么这不起作用?

public static void moveTo(char[][] tissue, int i, int j){
    char temp = tissue[i][j];

    for(int k = 0; k < tissue.length; k++){
        for(int l=0; l<tissue.length; l++){
            if(tissue[k][l] == ' '){
                tissue[k][l] = tissue[i][j];
                tissue[k][l] = temp;
                return;
            }
        }
    }
}

最佳答案

在第二个循环中,您必须使用tissue[k].length

并且tissue[i][j]必须用空白字符影响(如果我理解得很好)。 temp是没有用的。

public static void moveTo(char[][] tissue, int i, int j){
    for(int k = 0; k < tissue.length; k++){
        for(int l=0; l<tissue[k].length; l++){
            if(tissue[k][l] == ' '){
                tissue[k][l] = tissue[i][j];
                tissue[i][j] = ' ';
                return;
            }
        }
    }
}

关于java - Java在二维数组中切换char元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27091763/

10-11 11:29