Предполагая, что это ваши входные данные
PIN AccountNo Balance
1598 01-10-102203-0 95000
4895 01-10-102248-0 45000
9512 01-10-102215-0 125000
6125 01-10-102248 85000
Вам нужно будет разбить каждую строку на составляющие части, для этого вы можете использовать класс Scanner
, так как это позволит вам извлечь пин-код / номер счета в виде строк и остаток в виде двойное / целое число.
В данный момент вы сравниваете пользовательский ввод со всей строкой, поэтому для входа в систему вам потребуется ввести пин 1598 01-10-102203-0 95000
вместо 1598
.
Я предлагаю вам разделить это на два метода: один, который при получении файла возвращает Collection
из Account
объектов, и другой, который обрабатывает вход в систему.
Вы можете переписать цикл while, чтобы дать вам полезное сообщение об ошибке, если вы не получили правильный пин-код, например,
final File data = new File("D:\\Studies\\BCAS\\HND\\Semester 1\\Programming Concepts\\Assignment\\AccountPIN.tab");
Account userAcc = null;
for (Account acc : getAccounts(data)) {
if(userPIN.equals(acc.getPin())){
userAcc = acc;
}
}
if (userAcc == null) {
obj1.MainMenu();
} else {
// display error
}