So habe ich diese Methode, die die Namen für alle anzeigen, die eine übereinstimmende Teilzeichenfolge (nicht Groß-und Kleinschreibung) enthalten, und druckt die passenden Namen auf die JTextArea. Es sucht nach dem Namen aus einer Eingabedatei, die als Array gespeichert wurde. Aber wenn ich "Keine Ergebnisse gefunden" anzeigen möchte, wenn der Benutzer etwas eingibt, das nicht in der Datei vorhanden ist, zeigt es für alles "Keine Ergebnisse gefunden" an, sogar die Namen, die es gibt. Wenn ich die Anweisung heraushole, funktioniert meine Methode wieder korrekt und zeigt die richtigen Informationen an. Wie kann ich erreichen, dass "Keine Ergebnisse gefunden" angezeigt wird, ohne dass meine if-Anweisung nicht mehr funktioniert?Verwenden der if und else Statements
private void match(String targetSubstring)
{
displayArea.setText("");
displayArea.append("FIND RESULTS for: " + targetSubstring);
displayArea.append("\n");
displayArea.append("\n Name Best Decade");
displayArea.append("\n--------------- ---------------");
targetSubstring = targetSubstring.toUpperCase();
for (int i = 0; i < namesArray.length; i++) {
String theName = namesArray[i].getName();
if (theName.toUpperCase().contains(targetSubstring))
{
displayArea.append("\n" + namesArray[i].getName() + "\t" + namesArray[i].bestDecade());
}
else
displayArea.append("\n No results found");
}
}
Nein, es liegt ein logischer Fehler in seiner Schleife vor, bei dem für jedes Element im Array, das nicht mit der Teilzeichenfolge übereinstimmt, "keine Ergebnisse gefunden" gedruckt wird. Also ist der Code nicht ganz korrekt –