Hallo,
ich habe die Aufgabe in Java eine Funktion zu erstellen, welche einen String in einem String-Array findet und die Stelle anzeigt.
Mein Problem ist, dass das nur funktioniert, wenn ich mit einem "break" arbeite.
Da mein Lehrer immer sagt, dass "breaks" eine unschöne Lösung sind, versuchte ich die Bedingung in einer Zählschleife so zu formulieren, dass es ohne ein "break" funktioniert. Das funktioniert aber leider nicht.
Ich bekomme beim Öffnen der Datei die Fehlermeldung:
"index out of bounds exception"
Hier der Konstruktor:
public Aufgabe(){
String[][] textListe = {
{"Diese", "Aufgabe", "ist", "wirklich", "sehr", "kompliziert"},
{"Aber", "für", "mich", "kein", "Problem"}
};
String text = "Aufgabe";
System.out.println(index(textListe, text));
}
Das ist die funktionierende Funktion(mit break):
String index (String[][] feld, String suchText){
int a, b, h1, h2;
String ausgabe = "";
for(a = 0; a<=feld.length-1; a++){
for(b = 0; b<=feld[a].length-1; b++){
if(feld[a][b].equals(suchText)){
h1 = 1+a;
h2 = 1+b;
ausgabe = "Wort "+h2+" in Satz "+h1;
break;
}
}
}
return ausgabe;
}
Alles anzeigen
Und das ist meine "Problemfunktion"(ohne break):
String index (String[][] feld, String suchText){
String ausgabe = "";
int a, h1, h2;
int b = 0;
for(a = 0; a<=feld.length-1 || suchText.equals(feld[a][b]); a++){
for(b = 0; suchText.equals(feld[a][b]) || b<=feld[a].length-1; b++){
h1 = 1+a;
h2 = 1+b;
ausgabe = "Wort "+h2+" in Satz "+h1;
}
}
return ausgabe;
}
Alles anzeigen
Ich hoffe ihr könnt mir erklären bzw. einen Hinweis geben, warum die letztere Funktion nicht so funktioniert wie sie soll, d.h. warum sie nicht das selbe zurückgibt, wie die funktionierende.
Danke im vorraus!