Я очень новичок в java. Я должен сделать программу в школе, но когда я пытаюсь запустить ее, я получаю сообщение об ошибке. ArrayIndex .......: 0 в строке 139, это будет где я поставил два * спереди. Я устал, чтобы найти ошибку. Я работаю над этим целый день. Спасибо!ArrayIndexOutOfBoundsException: 0
PS: Я использую пакет easyIO, если некоторые из вас не могут понять некоторые команды.
Редактировать: Я, наконец, нашел его, и это была небольшая проблема. Но теперь я не могу заставить эту проклятую программу найти то, что я ищу в массиве.
void UtskriftArt() {
In Utskrift = new In();
In søkefil = new In("Fugler.txt");
int i= 0;
int teller = 0;
String[][] ArtArray = new String[teller][4];
for(; i > 0 && !søkefil.endOfFile(); i++){
søkefil.readLine();
teller++;
if(søkefil.endOfFile()){
søkefil.close();
}
}
System.out.print("Hvilken art vil du søke opp og skriv ut obeservasjonsdata for? ");
String ArtSøke = Utskrift.inWord().trim();
String Art = " ";
System.out.println("\t\t" + Art);
for(i = 0; i <= ArtArray.length; i++){
**if(ArtSøke == ArtArray[i][0]){
Art = ArtArray[i][0];
System.out.print(ArtArray[i][1]);
System.out.print("\t" + ArtArray[i][2]);
System.out.println("\t" + ArtArray[i][3]);
}
2 подсказки: вы не можете сравнить строку с ==, вам нужно выполнить string.equals (otherString). И не используйте специальные символы в именах переменных. – Mirco
Я бы остался с использованием английских имен в программах. Или, по крайней мере, имена, ограниченные набором ASCII ... Поверьте мне. Национальные герои - это всего лишь боль для поддержания. И я не английский ... – ppeterka
Цикл, который начинается следующим образом: 'for (; i> 0 &&! Søkefil.endOfFile(); i ++)' никогда не будет выполняться. Во второй части говорится, что выполнение цикла должно выполняться до тех пор, пока 'i' больше 0 (и мы не достигли конца файла). Тем не менее, 'i' начинается с 0, поэтому условие немедленно сработает. – ajb