Java Scanner util在请求用户提供电子邮件地址时引发异常
我得为班级写一份花名册 作业要求您向程序输入自己的信息 为此,我在测试类中添加了一个scanner部分到一个新的Student对象(me)中,在该对象中它要求我提供所有构造函数参数 其中之一是电子邮件地址。我无法让它工作,因为每次我输入我的电子邮件地址时,我都会遇到一系列异常 以下是一个输出示例:Java Scanner util在请求用户提供电子邮件地址时引发异常,java,java.util.scanner,Java,Java.util.scanner,我得为班级写一份花名册 作业要求您向程序输入自己的信息 为此,我在测试类中添加了一个scanner部分到一个新的Student对象(me)中,在该对象中它要求我提供所有构造函数参数 其中之一是电子邮件地址。我无法让它工作,因为每次我输入我的电子邮件地址时,我都会遇到一系列异常 以下是一个输出示例: What is your first name? Banning What is your last name? Lyth What is your email address? banninglyt
What is your first name?
Banning
What is your last name?
Lyth
What is your email address?
banninglyth@live.com
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 StudentRosterBLYTH.StudentRosterTest.main(StudentRosterTest.java:68)
C:\Users\banni\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 14 seconds)
这是我所掌握的测试类。最后一部分是抛出错误
import java.util.ArrayList;
import java.util.Scanner;
/**
*
* @author banni
*/
public class StudentRosterTest {
static int studentID;
static String firstName
static String lastName;
static String emailAddress;
static int age;
static int[] grades;
public static Scanner input = new Scanner(System. in );
public static void main(String[] args) {
ArrayList <Student> students = new ArrayList <Student> ();
students.add(new Student(studentID, firstName, lastName, emailAddress, age));
studentID = 1;
firstName = "John";
lastName = "Smith";
emailAddress = "John1989@google.com";
age = 20;
students.add(new Student(studentID, firstName, lastName, emailAddress, age));
studentID = 2;
firstName = "Suzan";
lastName = "Erickson";
emailAddress = "Erickson_1990@gmail.com";
age = 19;
students.add(new Student(studentID, firstName, lastName, emailAddress, age));
studentID = 3;
firstName = "Jack";
lastName = "Napol";
emailAddress = "The_Lawyer99yahoo.com";
age = 19;
students.add(new Student(studentID, firstName, lastName, emailAddress, age));
studentID = 4;
firstName = "Erin";
lastName = "Black";
emailAddress = "Erin.black@comcast.net";
age = 22;
students.add(new Student(studentID, firstName, lastName, emailAddress, age));
studentID = 5;
//Begin asking for new Student entry
firstName = input.next();
System.out.println("What is your first name?");
lastName = input.next();
System.out.println("What is your last name?");
emailAddress = input.next();
System.out.println("What is your email address?");
age = input.nextInt();
System.out.println("How old are you?");
}
}
import java.util.ArrayList;
导入java.util.Scanner;
/**
*
*@作者班尼
*/
公立班学生排班测试{
静态int-studentID;
静态字符串名
静态字符串lastName;
静态字符串地址;
静态智力;
静态int[]等级;
公共静态扫描仪输入=新扫描仪(System.in);
公共静态void main(字符串[]args){
ArrayList students=newArrayList();
添加(新学生(学生ID、名、姓、电子邮件地址、年龄));
studentID=1;
firstName=“约翰”;
lastName=“史密斯”;
电子邮件地址=”John1989@google.com";
年龄=20岁;
添加(新学生(学生ID、名、姓、电子邮件地址、年龄));
studentID=2;
firstName=“Suzan”;
lastName=“埃里克森”;
emailAddress=“埃里克森_1990@gmail.com";
年龄=19岁;
添加(新学生(学生ID、名、姓、电子邮件地址、年龄));
studentID=3;
firstName=“杰克”;
lastName=“Napol”;
emailAddress=“theu Lawyer99yahoo.com”;
年龄=19岁;
添加(新学生(学生ID、名、姓、电子邮件地址、年龄));
studentID=4;
firstName=“Erin”;
lastName=“黑色”;
emailAddress=“Erin。black@comcast.net";
年龄=22岁;
添加(新学生(学生ID、名、姓、电子邮件地址、年龄));
studentID=5;
//开始要求新学生入学
firstName=input.next();
System.out.println(“您的名字是什么?”);
lastName=input.next();
System.out.println(“你姓什么?”);
emailAddress=input.next();
System.out.println(“您的电子邮件地址是什么?”);
age=input.nextInt();
System.out.println(“你多大了?”);
}
}
所以,我想问大家,我做错了什么?是At标志还是我完全离开了
还有,有什么好处?我刚刚在一分钟前发布了这个,已经有了-rep?wat.png您正在使用nextInt()请求电子邮件时,您的下一个呼叫将被一个关闭。您应该使用.nextLine()进行字符串输入,使用.nextInt()进行年龄输入
也许把“询问输入”和“打印问题”切换到。。。还有,请调试你的代码。你不认为你需要先问一个问题,然后才期待得到答案吗?@luk2302我刚刚试过,不仅问题的顺序不确定,而且错误仍然会发生,@PM77-1切换它们确实有帮助。。现在已经成功了。谢谢,出于某种原因,我是通过另一种方式学习的,但是Java比这更符合逻辑。哎呀。谢谢
studentID = 5;
//Begin asking for new Student entry
System.out.println("What is your first name?");
firstName = input.nextLine();
System.out.println("What is your last name?");
lastName = input.nextLine();
System.out.println("What is your email address?");
emailAddress = input.nextLine();
System.out.println("How old are you?");
age = input.nextInt();