2016-09-15 26 views
0
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。任何人都可以指出错误?我基本上检查数组中没有两个连续的数字是否相同,然后打印相同的数组,但是如果连续两个数字相同,则使用下一个数字的副本。java array outofboundexception

+0

for循环'i chenchuk

+0

中的ints [i + 1]。既然你现在用ith + 1 –

+0

来检查ith,那么它给了我一个数组转储的东西,但是outofboundException不见了。 – NewProgrammer7

回答

1

i == ints.length-1 

检查

ints[i] != ints[i + 1] 

会给一个错误,因为

ints[i + 1] 

不存在。

array.length给出阵列中的元件的数量,而该阵列的索引从0开始,而不是在1。所以阵列array[array.length]的元件将永远存在,将总是给出异常。