我有一个地址簿程序:
所有功能都很好,但我的问题是,如果用户输入了NAME
已经存在,我想检查
这是我的addEntry
方法:
public void addEntry() {
entry[counter] = new AddressBookEntry();
entry[counter].setName(getNonBlankInput("Enter Name: "));
entry[counter].setAdd(getNonBlankInput("Enter Address: "));
entry[counter].setPhoneNo(getNonBlankInput("Enter Phone No.: "));
entry[counter].setEmail(getNonBlankInput("Enter E-mail Address: "));
counter++;
}
请帮我添加一些过滤用户输入的条件。比如,如果用户输入了名称ALREADY EXISTS。
提前致谢
答案 0 :(得分:2)
使用HashMap作为存储,密钥为UserName
。您可以通过执行HashMap的containsKey方法来检查用户是否存在。此外,建议
//this is your address-book with unique User-Name
private static final HashMap<String, AddressBookEntry> addressBook = new HashMap<String, AddressBookEntry>();
...
...
boolean addEntry(){
boolean isNewEntry = true;
//getNonBlankInput should check for valid name
String name = getNonBlankInput("Enter Name: ");
if(!addressBook.containsKey(name.toLowerCase())){
AddressBookEntry entry = new AddressBookEntry();
entry.setName(name);
entry.setAdd(getNonBlankInput("Enter Address: "));
entry.setPhoneNo(getNonBlankInput("Enter Phone No.: "));
entry.setEmail(getNonBlankInput("Enter E-mail Address: "));
addressBook.put(name.toLowerCase(), entry);
}else{
isNewEntry = false;
}
return isNewEntry;
}
答案 1 :(得分:2)
使用HashMap,键入名称怎么样?然后你可以使用containsKey()在添加条目之前查看名称是否已经在HashMap中。
答案 2 :(得分:0)
您需要将getNonBlankInput
的结果存储在某些局部变量中,以便在将它们直接添加到地址簿之前对其进行检查。您将需要某种循环来检查地址簿的所有条目,并比较名称以查看它是否已包含在地址列表中。
答案 3 :(得分:0)