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

Xia*_*iam 0 java

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

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)
Run Code Online (Sandbox Code Playgroud)

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

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


}
}
Run Code Online (Sandbox Code Playgroud)

Kev*_*sox 6

问题

 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`
Run Code Online (Sandbox Code Playgroud)

解决方案

 String name;
 ...
 System.out.println("Enter in your name");
 name = in.nextLine();
Run Code Online (Sandbox Code Playgroud)