Hallo,
ich habe ein Problem mit der Verwendung des Strings, den ich aus einem TextField ausgelesen habe. Meinen Fehler kann ich auch reproduzieren:
Der Quelltext
funktioniert wie gewünscht, die Ergebnisse von tiefensuche werden ausgegeben und die namensListe wird richtig ausgewertet.
Probleme verursacht eingabe.getText() in der nächsten Zeile:
ArrayIndexOutOfBoundsException: -1
tiefensuche(String s) sucht den Index von s aus einer ArrayList und ruft dann tiefensuche(int i) auf.
Gebe ich einen vorhandenen Namen direkt oder auch als Variable ein, funktioniert alles.
Rechtschreibfehler können ausgeschlossen werden, da ausgabe.getText() mit den Namen in der Liste verglichen wird.
Der Fehler tritt also nur auf, wenn ich eine Methode mit einem String-Parameter aufrufen möchte, der eingelesen wird. Dabei ist es egal, ober der String direkt eingegeben wird oder erst in einer Variablen abgespeichert wird. Auch der Umweg mit einer Methode innerhalb der Klasse den Index des Strings herauszufinden und dann die Methode mit dem int-Wert aufzurufen funktioniert nicht.
Danke für die Hilfe!
ich habe ein Problem mit der Verwendung des Strings, den ich aus einem TextField ausgelesen habe. Meinen Fehler kann ich auch reproduzieren:
Java:
public TextField eingabe;
public TextArea ausgabe;
public void tiefensuche(javafx.event.ActionEvent actionEvent) {
if (eingabe.getText().matches("\\d+")){
ausgabe.setText(graph.tiefensuche(Integer.parseInt(eingabe.getText())));
} else if (namensListe().contains(eingabe.getText())) {
ausgabe.setText(graph.tiefensuche("Name"));
} else {
ausgabe.setText("Es fehlt die Eingabe des Startortes");
}
}
Der Quelltext
Java:
if (eingabe.getText().matches("\\d+")){
ausgabe.setText(graph.tiefensuche(Integer.parseInt(eingabe.getText())));
} else if (namensListe().contains(eingabe.getText())) {
Probleme verursacht eingabe.getText() in der nächsten Zeile:
ArrayIndexOutOfBoundsException: -1
tiefensuche(String s) sucht den Index von s aus einer ArrayList und ruft dann tiefensuche(int i) auf.
Gebe ich einen vorhandenen Namen direkt oder auch als Variable ein, funktioniert alles.
Java:
ausgabe.setText(graph.tiefensuche("Name"));
Rechtschreibfehler können ausgeschlossen werden, da ausgabe.getText() mit den Namen in der Liste verglichen wird.
Der Fehler tritt also nur auf, wenn ich eine Methode mit einem String-Parameter aufrufen möchte, der eingelesen wird. Dabei ist es egal, ober der String direkt eingegeben wird oder erst in einer Variablen abgespeichert wird. Auch der Umweg mit einer Methode innerhalb der Klasse den Index des Strings herauszufinden und dann die Methode mit dem int-Wert aufzurufen funktioniert nicht.
Java:
ausgabe.setText(graph.tiefensuche(indexFinden(eingabe.getText()));
Danke für die Hilfe!