我有一个关于发生了什么的问题,每当我尝试编译它时它会一直给我一个错误:
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);
}
}
答案 0 :(得分:3)
<强>问题强>
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();
答案 1 :(得分:1)
为什么名称是整数? int name;
我怀疑你使用字母字符输入你的名字......并且在这一行得到例外:name = in.nextInt();
name
不应该是一个整数。它应该是一个字符串。
因此,string name;
和name = in.nextLine();
答案 2 :(得分:0)
这意味着您的程序试图读取一个不是整数的整数值。
使用name = in.nextInt();
它应该是string.not int
答案 3 :(得分:-1)
import java.util.*;
class Employe
{
private int id;
private String name;
Employe(int id,String name)
{
this.id=id;
this.name=name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Quarantine {
public static void main(String[] args) {
Employe empList[]=new Employe[2];
Scanner sc=new Scanner(System.in);
for(int index=0;index<empList.length;index++) {
int id=sc.nextInt();
String name=sc.nextLine();
empList[index]=new Employe(id,name);
}
for(int index=0;index<empList.length;index++) {
System.out.println(empList[index].getId()+" "+empList[index].getName());
}}
}
如果我输入为1,则
它将显示错误,因为两者都被当作字符
我需要输入124,运行
答案 4 :(得分:-1)
name = in.nextInt(); 因为您需要用户名,所以很明显它将是String类型,因此请使用 name = in.next()或 name = in.nextLine()。 我希望它现在可以正常工作。