因此,我想循環訪問數組,並查找陣列在哪些點開始新的一年以及該年的幾天。我有的問題是我無法得到2013年的陣列的最後一年。嘗試獲取上一個值時發生IndexOutOfBounds錯誤
2010 [25202,25567)365天。
2011 [25567,25932)365天。
2012 [25932,26298)366天。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 26663
at WeatherAnalysis.yearsArray(WeatherAnalysis.java:213)
public static void yearsArray(String a[]) { // Array to find the amnount of days in a year
int range1 = 0;
int range2 = 1;
String year = "";
for (int i = 0; i <= a.length-1; i++) {
String s = a[i];
String p = a[i+1];
if (s.equals(p)) {
range2 ++;
}else{
year = s;
System.out.println(year+" ["+range1+", "+range2 +") "+ (range2-range1)+" days");
range1 = range2;
range2 ++;
}
}
}
}
是的,我知道它已經不在陣列中,但我無法讓它工作,我需要它。因爲它將第一個索引與第二個索引進行比較,以查看它是否改變年份。當它打印出年份,索引範圍和一年中的日期時......我不知道如何在不超出數組範圍的情況下完成2013年 – 2014-12-02 02:15:40
我並不完全確定問題所在。你可以在一次迭代之前結束循環嗎? – Greg 2014-12-02 02:18:34
@ C-Webz @格雷格格雷格是對的。我想如果你改變循環爲'for(int i = 0; i
Universe
2014-12-02 02:31:17