사용자가 만든 "계정"을 보유하는 ArrayList를 만들었습니다. 나는 이제 ArrayList를 반복하고 "ArrayList"계정에 이미 존재하는 계정에 대해 사용자 입력을 검사하는 "로그인"함수를 작성하려고합니다. 이것은 내 루프입니다.ArrayList 문자열 비교
for(UserInfo createdUser : auctionAccounts){
if(enteredUser.equals(createdUser.userName) && enteredPass.equals(createdUser.passWord)){
System.out.println("Welcome: " +createdUser.userName);
returnToMenu();
}else{
System.out.println("Username or Password is wrong!");
loginAccount(aI);
}
}
ArrayList에 계정이 하나만있는 경우에는 정상적으로 작동합니다. 그러나 목록에 둘 이상의 계정이있는 경우 첫 번째 계정에만 로그인 할 수 있으며 그 이후에는 로그인 할 수 없습니다.
.equals() 대신 ArrayList.contains() 메서드를 사용해 보았지만 동일한 결과가 나타납니다.
수정 : 추가하기 만하면 계정을 만드는 방법입니다. 당신이해야
UserInfo createdUser = new UserInfo();
System.out.println("---- Enter a username ----");
createdUser.setUsername(scanner.next());
System.out.println("---- Enter a password ----");
createdUser.setPass(scanner.next());
this.aI.createAccount(createdUser);
accountHandler(aI);