使用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);