У меня возникла проблема с тем, чтобы мой объект Scanner читал ввод пользователя. Я хочу, чтобы сканер читал пользовательский ввод и сохранял ввод в массив байтов.Java Scanner No Line Found, не дожидаясь ввода пользователя
Если я использую следующий код:
import java.util.Scanner;
public class ExamTaker {
public static void main(String[] args) {
// Variable Declaration
char[] studentTest = new char[20];
// Input Setup
Scanner keyboard = new Scanner(System.in);
// Take the test
for (int i = 0; i < studentTest.length; i++) {
System.out.print("\nAnswer " + (i+1) + " : ");
studentTest[i] = keyboard.nextLine().charAt(0); // The troubled line
}
}
}
Я получаю сообщение об ошибке исключения следующим образом:
Answer 1 : Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at ExamTaker.main(ExamTaker.java:14)
Изучив через переполнение стека и Google, я принял предложение, чтобы поместить мой беспокойный в следующем порядке:
// Take the test
for (int i = 0; i < studentTest.length; i++) {
System.out.print("\nAnswer " + (i+1) + " : ");
try {
studentTest[i] = keyboard.nextLine().charAt(0);
}
catch (Exception e) {
System.out.print("Exception found");
}
}
Однако это все равно не будет производиться ce желаемый результат, по моему мнению, является проблемой с тем, как я использую метод nextLine(). Он просто бросает буквально «Исключение найден» буквально перед каждым пронумерованным ответом.
Я также попытался изменить цикл for на цикл do-while и бросить в keyboard.getChar() в случае, если он не дошел до конца строки, но безрезультатно.
Как я могу заставить пользователя ввести строку, в которой я беру первый символ и назначить его моему массиву символов в этом экземпляре? Заранее спасибо за вашу помощь.
Спасибо за ваш ответ! Закрытие проблемной строки в предложенном условном выражении позволяет избежать исключения, но не позволяет вводить пользователя. Мое предположение заключается в том, что оно не передает условное утверждение из-за отсутствия такой строки, которая уже существует. Кроме того, использование «next()» дает мне то же «NoSuchElementException», что и раньше. –