java.util.NoSuchElementException: строка не найдена, нужна помощь в понимании ошибки
В настоящее время я пишу программу для интерфейса для программы колледжа. я имею switch (str)
который читает вводимые пользователем данные и решает, какую функцию обрабатывать. Один из моих случаев для моего выключателя - удалить студента из ArrayList
колледж, состоящий из студентов. Всякий раз, когда я вызываю эту функцию, она будет печатать
java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at CollegeTester.main(CollegeTester.java:40)
линия 40 str = myInput.nextLine();
Я проверил другие случаи, и они, кажется, работают нормально, но всякий раз, когда я вызываю случай удаления, я получаю эту ошибку. Могу ли я получить некоторое представление о том, что происходит и, возможно, исправить?
do
{
Scanner myInput = new Scanner(System.in);
System.out.println("College directory commands: ");
System.out.println("add - Add a new Student ");
System.out.println("find - Find a Student ");
System.out.println("addQuiz - Add a quiz score for a student ");
System.out.println("findHighest - Find a student with the highest quiz score ");
System.out.println("delete - Delete a Student ");
System.out.println("getAverage - the average quiz score of the school.");
System.out.println("quit - Quit");
System.out.print("Enter a command: ");
//Scanner myInput = new Scanner(System.in);
str = myInput.nextLine();
switch(str)
{...
case "delete":
{
System.out.print("Enter a Student's number: ");
x = myInput.nextLine();
System.out.println(str);
langara.deleteStudent(x);
System.out.println(str);
}break;
case "getAverage":
{
System.out.println("The average quiz score for this college is: "+langara.getAverage());
}break;
} while(!"quit".equals(str));
public void deleteStudent(String studentID)
{
boolean t = false;
Scanner theInput = new Scanner(System.in);
String tmp;
for(student x: college)
{
if(x.getStudentID().equals(studentID))
{
//prompt user for a "yes" confirmation before deletion
System.out.print("Deleting Student: "+findStudent(studentID).getName()+" Please confirm witha \"yes\": ");
tmp = theInput.nextLine();
if(tmp.equals("yes"))
{
System.out.println("Student with ID "+x.getStudentID()+" is removed.");
college.remove(x);
t=true;
break;
}
else
{
break;
}
}
}
if(t==false)
{
System.out.println("No such student with ID "+studentID+" exsists at this college.");
}
theInput.close();
}