我想基本上反向交换矩阵中单行的项目。 例如,如果这是int矩阵中的一行:
--*---*-
然后当它被反向交换时,它将是:
-*---*--
我需要对矩阵中等于“*”的值执行此操作 这就是我所拥有的。我甚至不确定它是否会起作用,而且我也得到一个超出范围的例外。这个矩阵“image”是一个String矩阵。
public void flipHorizontal(){
for (int i=0; i<image.length; i++){
for (int j=0; j<image[i].length; j++){
if (image[i][j].equals("*")){
if(j<(image[i].length-1)/2){
image[i][(image.length-1)-(image[i].length)-j]="*";
image[i][j]="-";
}
else
image[i][(image[i].length-1)-j]="*";
image[i][j]="-";
}
}
}
}
答案 0 :(得分:0)
似乎导致错误的一行是第6行:
image[i][(image.length - 1) - (image[i].length) - j] = "*";
我不明白为什么你需要这个号码:(image.length - 1)
。这是多少行,我不明白为什么这对于翻转单行很有用。
此外,你的循环从0迭代到image.length
(或image[i].length
),这将给你一个超过你需要的迭代,因为长度为4将有0到3的索引和不是0到4.为了解决这个问题,只需从0迭代到`image.length