【问题标题】:Java - Error message InputMismatchExceptionJava - 错误消息 InputMismatchException
【发布时间】:2017-02-09 23:04:28
【问题描述】:

所以我正在为学校编写 Java 程序,我在 mac osx 上使用 Eclipse。当我运行程序时,它给了我这个错误:

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Dank.main(Dank.java:13)

这是代码:

             import java.util.Scanner;
             public class Dank
           {
 static Scanner in = new Scanner(System.in);
 public static void main(String args[])
{
int antonio='0';
int answer;
System.out.print("Whats your name? ");
answer = in.nextInt();
if (answer == antonio) {
    System.out.println("are you sure? you are a Dank Meme "+answer);
}
else
{
        System.out.println("Damn, you aren't a Dank Meme "+answer);
}
  }
  }

【问题讨论】:

  • 您需要在问题中包含您的实际代码,而不是指向您的代码图片的链接。
  • 请在此处发布必要的代码以纯文本形式重现问题(no 图片、链接等)。
  • 只需将“静态扫描仪...”的行放入而不是主要的,您将永远不会从无处获得这样的代码,而不是在方法中

标签: java


【解决方案1】:

in.nextInt() 只允许整数作为输入。所以如果你输入一个字符串,它会给你 inputmismatchexception。尝试将其更改为 in.nextLine()。你的情况早。它不会将 '0' 读为 0。程序将其读取为 '0' 的字符,因此它返回 48,因为您将其赋予了 int。尝试使用此代码。

 public class TestClass {


 static Scanner in = new Scanner(System.in);
public static void main(String args[])
{
String antonio = "0";
String answer;

System.out.print("Whats your name? ");
answer = in.nextLine();
if (answer .equalsIgnoreCase(antonio) ) {
System.out.println("are you sure? you are a Dank Meme "+answer);
}
else
{
 System.out.println("Damn, you aren't a Dank Meme "+answer);
}
}

}

【讨论】:

  • 如果需要的话,还可以比较字符串。 (回答 .equalsIgnoreCase(antonio) )而不是使用 "=="
猜你喜欢
  • 1970-01-01
  • 2015-08-29
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
  • 1970-01-01
  • 2014-04-05
  • 2019-01-26
  • 1970-01-01
相关资源
最近更新 更多