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。任何人都可以指出错误吗?我基本上检查一个数组中没有两个连续的数字是相同的,然后打印相同的数组,但如果连续两个相同,则使用下一个数字的副本。
答案 0 :(得分:1)
当
i == ints.length-1
支票
ints[i] != ints[i + 1]
将发出错误
ints[i + 1]
不存在。
array.length
给出数组中元素的数量,而数组的索引从0开始,而不是1.因此,数组array[array.length]
的元素永远不会存在,并且总是给出一个异常。