public static int[] squeeze(int[] ints) {
int i;
int[] temp;
temp = new int[100];
for (i = 0; i < ints.length; i++) {
if (ints[i] != ints[i + 1]) {
temp[i] = ints[i];
}
else{
while (ints[i] != ints[i + 1]) {
i++;
}
temp[i] = ints[i];
}
}
return temp;
}
当我运行此代码时,它给了我arrayOutOfBoundException。任何机构都可以指出错误吗?我基本上是检查数组中是否没有两个连续的数字相同,然后打印相同的数组,但如果两个连续的数字相同,则打印下一个数字的副本。
最佳答案
什么时候
i == ints.length-1
支票
ints[i] != ints[i + 1]
将给出一个错误,因为
ints[i + 1]
不存在。
array.length
给出数组中元素的数量,而数组的索引从0开始,而不是从1开始。因此,数组array[array.length]
的元素将永远不存在,并且将始终给出异常。