反转一个int数组

时间:2019-03-04 07:44:50

标签: java arrays function

我想在Java中反转一个int数组,这是代码,但是它抛出错误arrayOutOfBound异常。

class reverse_number {
    public static void main(String[] args) {
        int ar[]={1,3,4,2};
        int ar1[]=new int[4];

        for(int i=0;i<ar.length;i++) {
            ar1[i++]=ar[ar.length-1];
        }

        for(int i=0;i<ar1.length;i++) {
            System.out.print(ar1[i]);
        }
    }
}

3 个答案:

答案 0 :(得分:2)

public static void main(String[] args){
    ...
    int reveArr[] = new int[arr1.length];

    for(int i = 0 ; i <arr1.length;i++){
        reveArr[i] =arr1[arr1.length-i-1];
    }
    ...
}

您要递增i两次。当您尝试使用超出其容量的索引访问数组时(当i在最后一次迭代中,并且您访问arr1[i++]时,所访问的索引的长度超过了arr1的长度),它一定会给您ArrayIndexOutOfBoundsException

答案 1 :(得分:1)

你在做

for(int i=0;i<ar.length;i++)

然后在此循环中,您再次增加i

ar1[i++]

这不是必需的,只需使用i

答案 2 :(得分:0)

请尝试这个。

class reverse_number {
    public static void main(String[] args) {
        int ar[] = { 1, 3, 4, 2 };
        int ar1[] = new int[4];
        int count = 0;
        for (int i = ar.length - 1; i >= 0; i--) {
            ar1[count++] = ar[i];

        }
        for (int i = 0; i < ar1.length; i++) {
            System.out.print(ar1[i]);
        }
    }
}