在矩阵中单个行中翻转项目

时间:2016-04-07 01:50:37

标签: java string matrix row swap

我想基本上反向交换矩阵中单行的项目。 例如,如果这是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]="-";

            }

        }

    }
}

1 个答案:

答案 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