我的项目是一个个人管理程序,它有三个数组(一个是员工的姓氏,一个是员工的姓名,一个是员工的地址)。这个程序应该能够达到管理的目的,这就是为什么它有几个功能(添加新员工,通过索引位置搜索员工等)。这是我的最后一个方法,它应该能够在员工中找到包含xx(由用户输入的字母,因为他没有正确地记住名字)的名字,并打印出员工的地址(adres)、姓氏(nN)和名字(vN)。
到现在为止,我用了两种方法来实现我的目标,但都没有正常工作。
第一:
public static void sucheXL(String[] vN, String[] nN, String[] adres) {
Scanner sc = new Scanner(System.in);
System.out.println("Geben Sie den Text ein: ");
String nn = sc.nextLine();
boolean gefunden = false;
for (int i = 0; i < nN.length; i++) {
if (Arrays.asList(nN).contains(nn)) {
System.out.println("Dieser Name " + nN[i] + " fängt mit " + nn + " an");
gefunden = true;
break;
}
if (!gefunden) {
System.out.println("Es wurden keine Namen gefunden, die diesen Text beinhalten");
break;
}
}
}
第二:
public static void sucheL(String[] vN, String[] nN, String[] adres) {
Scanner sc = new Scanner(System.in);
System.out.println("Geben Sie den Text ein: ");
String nn = sc.nextLine();
boolean gefunden = nN.contains(nn);
for (int i = 0; i < nN.length; i++) {
if (gefunden == true) {
System.out.println("Dieser Name " + nN[i] + " fängt mit " + nn + " an");
gefunden = true;
break;
}
if (!gefunden) {
System.out.println("Es wurden keine Namen gefunden, die diesen Text beinhalten");
break;
}
}
}
你是在检查条目(姓名)是否与输入的文本完全相等,这似乎是不希望...
如果您想找出任何条目是否以输入的文本开始或包含文本,您必须找出名称是否包含以下字符序列,即 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