繁体   English   中英

在Java中使用扫描仪时纠正运行时错误

[英]Correction for runtime error while using Scanner in Java

我必须完成一项上学的作业,才能制作GPA计算器。 它总共有三个类。 在我正在上的课中,我们必须设置多个方法。 在此特定方法(即“ readGradeCount”方法)中,用户应输入要为其GPA计算多少个成绩。 用户应该输入一个正数和一个大于零的数。 我必须验证用户输入,因此我决定使用循环来完成此操作。 当我运行代码时,它会给我以下内容

java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]

我不知道这意味着什么,我已经尝试了很多方法来解决它,但我做不到。 这是我对此方法的代码:

public static int readGradeCount()
{
  int count;
  Scanner keyboard;
  keyboard = new Scanner(System.in);

  do
  {
    System.out.print("How many grades? ");
    while(!keyboard.hasNextInt())
    {
      System.out.print("Bad value- " + keyboard + "\n");
      keyboard.next();
      System.out.print("How many grades? ");

    }
    count = keyboard.nextInt();
  }    
  while (count <= 0);

  return count;
}

用户输入的值应该位于短语“ Bad value-”之后,但我得到的却是这行东西。 有什么建议么? 谢谢您的帮助!

您打印出Scanner keyboardprintln语句,尝试使用keyboard.next()println ,然后删除keyboard.next()在你的程序。

您正在打印扫描仪,并且给出了一个非常奇怪的字符串。 尝试先捕获键盘的值并进行打印。

while (!keyboard.hasNextInt()) {
    final String value = keyboard.next();
    System.out.print("Bad value- " + value + "\n");
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM