Вы проверяете записи (имена) на полное равенство введенному тексту, что кажется нежелательным ...
Если вы хотите узнать, начинается ли какая-либо запись с введенного текста или содержит его, вам нужно выяснить, действительно ли имя содержит последовательность символов из System.in
. Вы можете сделать это так:
public static void sucheXL(String[] nN) {
Scanner sc = new Scanner(System.in);
System.out.println("Geben Sie den Text ein: ");
String nn = sc.nextLine();
// you may want to close the Scanner...
sc.close();
boolean gefunden = false;
// check for all the entries in nN
for (int i = 0; i < nN.length; i++) {
// if the entry starts with the entered String or
if (nN[i].startsWith(nn)) {
System.out.println("Der Name " + nN[i] + " beginnt mit " + nn);
gefunden = true;
break;
// if it contains the entered String
} else if (nN[i].contains(nn)) {
System.out.println("Der Name " + nN[i] + " enthält " + nn);
gefunden = true;
break;
}
}
if (!gefunden) {
System.err.println("Es wurde kein Name gefunden, der mit dem eingegebenen Text beginnt oder ihn beinhaltet");
} else {
System.out.println("Es wurde mindestens ein Name gefunden, der mit dem eingegebenen Text beginnt oder ihn beinhaltet");
}
}
Затем вы можете использовать его в main
с некоторым примером String[]
как-то так:
public static void main(String[] args) {
String[] names = {"Hans", "Fritz", "Horst", "Rudolf", "Jürgen", "Dietmar", "Jwan"};
sucheXL(names);
}
Ввод "or"
дает мне результат
Geben Sie den Text ein:
or
Der Name Horst enthält or
Es wurde mindestens ein Name gefunden, der mit dem eingegebenen Text beginnt oder ihn beinhaltet