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();
}

0 ответов

Другие вопросы по тегам