我试图将2d数组中的false元素移动到元素
中的不同空格'x''o'' '
' '' ''o'
'x''x''o'
数组中的第一个元素(x)是false,因为它周围没有类似的元素。 我试图使用嵌套的for循环,但没有得到结果 这就是我得到的
' ''o''x'
'x''x''o'
'x''x''o'
它将false x移动到所有空格而不是仅仅一个空格。请给我任何提示 这是我的代码。我尝试过使用break,但它确实没有用。 组织是传递元素的数组
char[][] arr = new char[tissue.length][tissue[0].length];
int count = 0;
char temp;
for(int i=0; i<tissue.length; i++){
for(int j=0; j<tissue[0].length; j++){
if(!isSatisfied(tissue,i,j,threshold)){
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[i][j] = arr[k][l];
arr[k][l] = temp;
}
}
}
}
}
}
答案 0 :(得分:2)
当找到第一个替换空间
时,你必须打破循环 if(!isSatisfied(tissue,i,j,threshold)){
temp = tissue[i][j];
outer:
for(int k=0; k<tissue.length; k++){
for(int l=0; l<tissue.length; l++){
if(tissue[k][l] == ' '){
tissue[i][j] = arr[k][l];
arr[k][l] = temp;
break outer;
}
}
}
}
答案 1 :(得分:0)
首先在
for(int l=0; l<tissue.length; l++){
它应该是组织[0] .length?
中的第二名
tissue[i][j] = arr[k][l];
arr应该在初始化之前可以分配给另一个变量。