Почему приповторной итерации метод hasNextLine возвращает ложь?
Если кратко, то у меня в main
методе есть бесконечный цикл. На первой итерации цикла все идёт нормально, но начиная со второй Scanner начинает вести себя не ожиданно.
Дальше фрагмент цикла.
while (true) {
int variable1 = 0;
int variable2 = 0;
String str = "";
do {
try (Scanner scan = new Scanner(System.in)) {
if (scan.hasNextLine()) {
System.out.print("Enter Value: ");
str = scan.nextLine();
}
}
} while (str.length() != 4);
А именно метод hasNextLine()
возвращает ложь, из-за чего на второй итерации он не позволяет ввести данные с клавиатуры, а использует значение по-умолчанию, т.е. str = "";
2 вопроса: 1. Почему это происходит? 2. Как это исправить не прибегая к next() (так просто, на будущее).
Я так же нашёл похожий вопрос про ввод 2 чисел и операции и то, что nextLine() читает до первого \n
из-за чего и происходит ввод пустой строки, только моя проблема вроде немного отличается