Помогите, пожалуйста, с проблемой. Есть код, создается карта, туда импортируются данные из файла. Затем пользователь выбирает зарегистрироваться, или авторизоваться. Если зарегистрироваться, то вводит логин и пароль, после чего это заносится строкой в карту через ';'
Если выбирает авторизоваться, то его просит ввести логин, затем пароль. Вот тут то у меня проблема. Пользователь вводит логин, если такой логин есть среди ключей в карте, то выходим из цикла и просит ввести пароль. Проблема в том, что в цикле с вводом пароля, счетчик начинается заново, и он принимает только значение первого элемента в карте
Например есть карта { log1;pass1, log2;pass2 }
Есть при авторизации мы ввели log2, то он не просит пароль pass2, а просит pass1
Как мне перейти к той строке в карте, которую ввел пользователь при вводе логина? Внизу привожу часть когда авторизации
HashMap<String, String> usersMap = new HashMap<>();
public void Authorization() throws IOException {
System.out.println("Авторизация пользователя");
BufferedReader inAuth = new BufferedReader(new InputStreamReader(System.in));
boolean loginTrue = false;
boolean passTrue = false;
for (Map.Entry<String, String> maps : usersMap.entrySet()) {
while (loginTrue == false) { // проверка логина на совпадения в базе данных пользователей
System.out.println("Введите логин: ");
String inLogin = inAuth.readLine();
if (usersMap.containsKey(inLogin)) {
loginTrue = true;
System.out.println(" ТО что получилось после ввода логина: " + maps.getKey() + " " + maps.getValue());
} else {
System.out.println("Пользователь с логином " + inLogin + " не найден в системе.");
System.out.println("Попробуйте еще раз");
}
}
int chance = 3;
while (passTrue != true) {
System.out.println(maps.getKey() + " " + maps.getValue());
System.out.println("Введите пароль : ");
String inPass = inAuth.readLine();
if (inPass.equals(maps.getValue())) {
System.out.println("Авторизация прошла успешно");
passTrue = true;
break;
} else {
System.out.println("Пароль неверный.");
System.out.println("Попробуйте еще раз");
chance--;
}
if (chance == 0) {
System.out.println("Проверьте раскладку клавиатуры");
}
}
}
}
olegasics
22 уровень
Помогите в реализации HashMap, пожалуйста
Решен
Комментарии
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
У этой страницы еще нет ни одного комментария