我有一个addUser()
方法,可以为<FacebookUser>
用户ArrayList添加新用户。
void addUser() {
String username;
String password;
String passwordHint;
System.out.println("Please type in your desired username:");
username = input.nextLine();
if (users.toString().contains(username)) {
System.out.println("Username already exists!");
} else {
System.out.println("Please type in your desired password:");
password = input.nextLine();
System.out.println("Please type in your password hint:");
passwordHint = input.nextLine();
FacebookUser newUser = new FacebookUser(username, password);
newUser.setPasswordHint(passwordHint);
users.add(newUser);
}
}
我现在正试图制作一个deleteUser()
方法而且我被困在这一部分。我应该将给定的密码与与给定用户名相关联的Facebook用户密码进行比较。如果密码匹配,我应该从用户ArrayList中删除FacebookUser
对象。
void deleteUser() {
String username;
String password;
System.out.println("Please type in your username:");
username = input.nextLine();
if (users.toString().contains(username)) {
System.out.println("Please type in your password:");
password = input.nextLine();
} else {
System.out.println("Username doesn't exist!");
}
}
非常感谢任何帮助!
答案 0 :(得分:1)
我认为users
是List
。
如果method
正确无误,getters
就可以了。
您只需找到username
的正确索引,然后检查密码。
for (int i = 0 ; i < users.length() ; i++){
if (users.get(i).getName().equals(username)){
if (users.get(i).getPassword().equals(password)) System.out.println("Deleted");
else System.out.println("Password incorrect !");
break;
}
}
编辑:在这里我打印出的动作非常清晰,但在实践中,最好的方法是存储索引并删除索引后删除索引
答案 1 :(得分:1)
我应该将给定的密码与Facebook用户的密码进行比较,该密码与给定的用户名相关联。
保持我的解决方案简单。您的第一步是从列表中获取目标用户对象。
User target = null;
for(User u : users)
if(u.getUserName().equals(enteredUserName)) //Assuming all usernames are unique
target = u;
接下来,检查给定的密码是否匹配。
if(target.getPassword().equals(enteredPassword)) //if password matches
users.remove(target); //delete user from list