[英]How to login with Account Number-Java
大家好,我正在嘗試使用存儲在數組列表中的帳號登錄,但我無法將用戶輸入與帳號匹配。我的代碼如下:
登錄方式-主類
private void Login (){
int UserInput;
Scanner option = new Scanner (System.in);
Account Account = new Account();
ArrayList<Client> customers = bank.getCustomers(); //Gets Customer Info from Bank
System.out.println("What is your Account Number?");
UserInput = option.nextInt();
if(UserInput==Account.getAccountNumber()){
Menu();
int choice = UserInput();
performAction(choice);
//system.out.println(i+1 + ")" + customers.get(i).BasicInfo());
}
else {
System.out.println("Invalid Account Number");
}
}
ArrayList - 銀行類
public class Bank {
ArrayList<Client> customers = new ArrayList<Client>(); //Adds customer details in this
void addCustomer(Client customer) {
// TODO Auto-generated method stub
customers.add(customer);//Adds customer from Menu to ArrayList
}
Client getCustomer(int account) {
// TODO Auto-generated method stub
return customers.get(account); //Returns Customer detail from ArrayList
}
ArrayList <Client> getCustomers (){
return customers; //Returns customers
}
}
大家好,我要做的是使主類中的 userInput 能夠匹配來自“GetMethod”的 AccountNumber 我相信它存儲在“Bank”類的一個數組中。如果它與帳號匹配其他方法在 if 語句中起作用。現在,當我輸入 AccountNumber 時,它只會轉到 else 語句並顯示“無效的 AccountNumber”。如果這沒有意義,我深表歉意。
從您的代碼中,我認為您正在其他地方保存用戶的帳號。
您從 Account 類獲得的帳號是下一個可以分配的帳號。當您初始化 Account 類時,在 Account 構造函數中它會增加帳號。 該數字是從 Account.getAccountNumber() 返回的。
這不可能是現有用戶的帳號。
解決方案:您沒有在此處發布客戶類。 但是您的客戶類中必須有一個 account_number 變量。您可以為帳號設置一個 getter。 在銀行內,您列出了客戶。 您需要遍歷每個客戶並將輸入帳號與這些客戶的帳號相匹配。您在銀行類中的循環可能如下所示:
for(int i=0;i<customers.size();i++){
if(inputAccountNumber == customers.get(i).getAccountNumber())
{
return true;
}
}
這不是一個可擴展的解決方案。 您可以為客戶設置一個哈希映射,以帳號為鍵,值為該客戶的客戶類實例。
希望這能解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.