【发布时间】:2014-04-24 22:13:41
【问题描述】:
我正在尝试搜索数组中的值。结果不断回来,但什么都没有。我假设我的循环不正确,你能帮我解决我做错了什么吗?假设使用“searchFor”中保存的值并匹配。然后在 Printer.printPersonList 中显示该值。
public static ArrayList<Person> findPerson(String searchFor) {
ArrayList<Person> matches = new ArrayList<>();
for (Person p : personList) {
boolean isAMatch = false;
if (p.getFirstName().equalsIgnoreCase(searchFor)) {
isAMatch = true;
} else if (p.getLastName().equalsIgnoreCase(searchFor)) {
isAMatch = true;
} else if (p.getSocialSecurityNumber().contains(searchFor)) {
isAMatch = true;
;
} else if (String.format("%d", p.getAge()).equals(searchFor))
if (isAMatch) {
matches.add(p);
}
Printer.printPersonList(matches);
}
return matches;
}
来自printer.java
public static void printPersonList(ArrayList<Person> personListToPrint) {
System.out
.printf("\nLast Name First Name Social Security Number Age\n");
System.out
.printf("=================== =================== ====================== ===\n");
for (Person p : personListToPrint) {
System.out.printf("%-20s%-21s%-24s%s\n", p.getLastName(),
p.getLastName(), p.getSocialSecurityNumber(), p.getAge());
}
【问题讨论】:
-
else if (String.format("%d", p.getAge()).equals(searchFor))没有有意义的正文。