Я хочу сравнить два String
s в двух разных массивах. String
s хранятся в s1
и s2
переменных. Эта часть отлично работает, но если я добавлю, если условие, if(s1.equals(s2)){/*...*/}
, я получаю ArrayIndexOutOfBoundsException
.Java equals вызывает ArrayIndexOutOfBoundsException
Посмотрите на этих двух снимков экрана:
В обоих случаях массивы имеют одинаковые значения. Единственное, что было изменено, это условие if.
Изображение # 1
Изображение # 2
Код:
Vagon tmp = first;
int stevec = 1;
while(tmp != null){
double trenutenVolumen = 0;
for(int j = 0; j < tmp.opisTovora.length; j++){
trenutenVolumen += tmp.volumenTovora[j];
}
double lahkoDodamVolumna = tmp.volumen-trenutenVolumen;
double lahkoDodamTeze = lokomotiva.najvecjaMasa-trenutnaTeza;
System.out.println("len: "+tmp.opisTovora.length);
if(tmp.tipTovora == tipTovora[0] && lahkoDodamVolumna >= volumenTovora[0] && trenutnaTeza+tezaTovora <= lokomotiva.najvecjaMasa){
if(!tmp.tipTovora){
String s1 = tmp.opisTovora[0];
String s2 = opisTovora[0];
//if(s1.equals(s2)){
System.out.println(s1 + " == " + s2);
System.out.println("LAHKO DODAM TOVOR #" + (i+1) + " => V VAGON #" + stevec);
break;
//}
}
if(tmp.tipTovora){
System.out.println("LAHKO DODAM TOVOR #" + (i+1) + " => V VAGON #" + stevec);
break;
}
}
stevec++;
tmp = tmp.next;
}
Exception показывает номер строки 498. Посмотрите на это. –
Является ли этот код многократно. Поскольку ваш первый снимок показывает его несколько раз печатных значений. –
@Naman Gala Ну, почему линия 498 хороша в первом случае? –