我必须为类(class)编写一个名册程序。
作业要求您将自己的信息输入到程序中。
为此,我在测试类中添加了一个扫描器部分到一个新的 Student 对象(我),其中它要求我提供所有构造函数参数。
其中之一是电子邮件地址。我无法让它工作,因为每次我输入我的电子邮件地址时,我都会遇到一系列异常。
以下是输出示例:
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?");
}
}
所以,我向你们所有人提出的问题是,我做错了什么?是 At-Sign 的问题还是我完全不在状态?
另外,什么给出了?我一分钟前刚刚发布了这个并且已经有了 -rep? wat.png
最佳答案
当您请求电子邮件时,您正在使用 nextInt(),您的下一个调用将全部关闭。您应该使用 .nextLine() 作为字符串输入,使用 .nextInt() 作为年龄。
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();
关于Java Scanner util 在询问用户电子邮件地址时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42014326/