使用Scanner-at java.util.Scanner.next(未知源代码)java.util.NoSuchElementException

使用Scanner-at java.util.Scanner.next(未知源代码)java.util.NoSuchElementException,java,system.in,Java,System.in,我的完整代码已粘贴。下面是与我的问题相关的两种方法 private static boolean playGameAgain() { char playAgain = 'y'; Scanner input = new Scanner(System.in); while(playAgain != 'n') { System.out.println("Go again?(y/n)"); /// PROBL

我的完整代码已粘贴。下面是与我的问题相关的两种方法

private static boolean playGameAgain()
{
        char playAgain = 'y';
        Scanner input = new Scanner(System.in);
        while(playAgain != 'n')
        {
                System.out.println("Go again?(y/n)");
/// PROBLEM HERE....  Somehow, it will NOT wait for INPUT. It just throws an error
                playAgain = input.next().charAt(0);
        }
        input.close();
        return (playAgain != 'y')?false:true;
}

// [Trimmed]

public static void initialize(ArrayList<String> names, ArrayList<Integer> scores)
{
        Scanner input = new Scanner(System.in);
        for (int i = 1; i <= 5; i++)
        {
                System.out.println("Enter the name for score #" + i + ":");
                names.add(input.nextLine());
                System.out.println();
                System.out.println("Enter the score for score #" + i + ":");
                while(!input.hasNextInt())
                {
                        //input.nextLine();
                        System.out.println("Please input a valid integer value for the score for #" + i + ":");        
                        if(!input.hasNextInt())
                                 input.nextLine();
                }
                scores.add(input.nextInt());
                input.nextLine();
        }
        input.close();
}
但是,不知怎的,在我写的这个程序中,它不起作用

这是一个程序,将读取5个用户名(字符串)和5个分数(整数),并将它们放入2个数组中。它将按降序排列数组,然后将它们打印出来。所以,我唯一的问题是询问他们是否想再次播放,并获取一些字符输入,看看他们是否想再次播放(是/否)


如果可以的话,请帮忙。我尝试了多种组合:
if(input.hasNext())
,但都没有成功

playgamereach()
中,您没有将
playgamereach
设置为除“y”以外的其他值。您这里有一个错误。

input.next()。字符(0)需要用户输入换行符,您是否认为正确?我已编辑了您的问题,将我认为对问题至关重要的部分包括在内。请检查是否要包含更多内容。您可以查看以查看更改的内容。
Scanner input = new Scanner(System.in);
char temp = input.next().charAt(0);