Итак, я предполагаю, что нужно пройти через массив и найти в каких точках массив начнет новый год и сколько дней в этом году. Проблема в том, что я не могу получить последний год массива, который составляет 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 года, не выходя из границ массива –
Я не совсем уверен, в чем проблема. Можете ли вы закончить цикл за одну итерацию раньше? – Greg
@ C-Webz @ Грег Грег прав. Я полагаю, если вы измените цикл на 'for (int i = 0; i
Universe