2016-09-15 49 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]的元件將永遠存在,將總是給出異常。