主线程java.util.InputMismatchException错误中出现异常
我有一个关于发生了什么的问题,每当我试图编译它时,它总是给我这样一个错误:主线程java.util.InputMismatchException错误中出现异常,java,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.Scanne
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)
我只希望用户能够输入他们的年龄和姓名,并将其存储在“age”和“name”变量中,然后将其打印在底部字符串中。如果有人也愿意帮我清理代码,那也没什么害处
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);
}
}
import java.util.*;
导入java.io.*;
导入java.util.Scanner;
公共阶层人士
{
公共静态void main(字符串[]args)
{
智力年龄;
int名称;
扫描仪扫描=新扫描仪(System.in);
System.out.println(“输入您的年龄”);
age=scan.nextInt();
if(年龄<18岁)
{
System.out.println(“那么你是个孩子,嗯?那很好。”);
}
否则,如果(年龄>=18岁)
{
System.out.println(“啊,还有成人!很好”);
}
@抑制警告(“资源”)
扫描仪输入=新扫描仪(系统输入);
System.out.println(“输入您的姓名”);
name=in.nextInt();
System.out.println(“那么你是“+age+”岁,你的名字是“+name”);
}
}
为什么名称是整数<代码>整数名代码>
我怀疑您正在使用alpha字符输入您的姓名…并且在这一行出现异常:name=in.nextInt()代码>
name
不应为整数。它应该是一个字符串
因此,字符串名
和name=in.nextLine()代码>为什么名称是整数<代码>整数名代码>
我怀疑您正在使用alpha字符输入您的姓名…并且在这一行出现异常:name=in.nextInt()代码>
name
不应为整数。它应该是一个字符串
因此,字符串名
和name=in.nextLine()代码>问题
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();
问题
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();
这意味着您的程序试图读取一个不是整数的整数
在.nextInt()中使用name=代码>
它应该是string.not int这意味着您的程序试图将一个值读取为一个非整数的整数
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());
}}
}
在.nextInt()中使用name=代码>
它应该是string.not intimport java.util.*;
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());
}}
}
阶级雇员
{
私有int-id;
私有字符串名称;
雇员(整数id,字符串名称)
{
这个.id=id;
this.name=name;
}
公共int getId(){
返回id;
}
公共无效集合id(内部id){
this.id=id;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
}
公营检疫{
公共静态void main(字符串[]args){
雇员雇佣者[]=新雇员[2];
扫描仪sc=新的扫描仪(System.in);
对于(int index=0;indeximport java.util.*;
阶级雇员
{
私有int-id;
私有字符串名称;
雇员(整数id,字符串名称)
{
这个.id=id;
this.name=name;
}
公共int getId(){
返回id;
}
公共无效集合id(内部id){
this.id=id;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
}
公营检疫{
公共静态void main(字符串[]args){
雇员雇佣者[]=新雇员[2];
扫描仪sc=新的扫描仪(System.in);
对于(int index=0;indexname=in.nextInt();
因为您需要用户名,所以很明显它将是字符串类型,所以请使用
name=in.next()或name=in.nextLine()。
我希望它现在能工作。name=in.nextInt();
因为您需要用户名,所以很明显它将是字符串类型,所以请使用
name=in.next()或name=in.nextLine()。
我希望它现在能起作用。请记住,OP将name
定义为int
name
应该定义为string
。请记住OP将name
定义为int
名称
应该定义为字符串。这个问题在你回答之前7年就被问到了?这个问题是在你回答之前7年提出的?