线程主 java.util.InputMismatchException 错误中的异常

新手上路,请多包涵

我对发生了什么有疑问,每当我尝试编译它时,它总是给我这样的错误:

 Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Person.main(Person.java:38)

我想要的只是让用户能够输入他们的年龄和姓名并将其存储在“年龄”和“姓名”变量中,然后让它在底部字符串中打印出来。如果有人也愿意帮助我清理我的代码,那也没什么坏处……

 import java.util.*;
import java.io.*;
import java.util.Scanner;

public class Person

{

public static void main(String[]args)

    {

    int age;
    int name;

    Scanner scan = new Scanner(System.in);

    System.out.println("Enter in your age.");
    age = scan.nextInt();

     if (age < 18)

     {
         System.out.println("So you're a kid, huh? That's fine.");
     }

     else if (age >= 18)

     {
        System.out.println("Ah, and adult! Good.");
     }

     @SuppressWarnings("resource")
     Scanner in = new Scanner(System.in);

     System.out.println("Enter in your name");
     name = in.nextInt();

     System.out.println("So you're " + age + " years old and your name is " + name);

}
}

原文由 Xiam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 536
2 个回答

问题

 int name; //Name should be of type String
 ...
 System.out.println("Enter in your name");
 name = in.nextInt(); //It doesn't handle the string since your using `nextInt`

解决方案

 String name;
 ...
 System.out.println("Enter in your name");
 name = in.nextLine();

原文由 Kevin Bowersox 发布,翻译遵循 CC BY-SA 3.0 许可协议

为什么名称是整数? int name;

我怀疑您正在使用字母字符输入您的姓名…并且在这一行出现异常: name = in.nextInt();

name 不应 为整数。它 应该 是一个字符串。

因此, string name;name = in.nextLine();

原文由 user5398447 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏