我想在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]);
}
}
}
答案 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]);
}
}
}