我有一个Java课程入门项目,并且不断收到InputMismatchException。两名评分助理找不到问题,所以希望这里有人可以!该程序使用文档作为输入,由于某种原因,它读错了。随附的是一个zip文件,其中包含输入文件和所有类(尽管您可能只需要主类)。还随附了该课程给出的说明。谢谢!
似乎出错的代码:
private OnlineStudent readOnlineStudent(Scanner pIn) {
String id = pIn.next();
String lname = pIn.next();
String fname = pIn.next();
OnlineStudent student = new OnlineStudent(id, fname, lname);
String fee = pIn.next();
- Line 160 > int credits = pIn.nextInt();
if (fee.equals("T")) student.setTechFee(true);
else student.setTechFee(false);
student.setCredits(credits);
return student;
}
这是输入文档的文本:
C 8230123345450 Flintstone Fred R 0 12
C 3873472785863 Simpson Lisa N 750 18
C 4834324308675 Jetson George R 0 20
O 1384349045225 Szyslak Moe - 6
O 5627238253456 Flanders Ned T 3
堆栈跟踪:
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 Main.readOnlineStudent(Main.java:160)
at Main.readFile(Main.java:84)
at Main.run(Main.java:189)
at Main.main(Main.java:31)
使用代码和文档链接到Google驱动器文件夹:
https://drive.google.com/open?id=1rjiXoB-rBd1FQdQQqbGMGL_a1kWd1v_Z
答案 0 :(得分:0)
查看输入与读数值的匹配方式。
String id = pIn.next(); // C
String lname = pIn.next(); //8230123345450
String fname = pIn.next(); //Flintstone
OnlineStudent student = new OnlineStudent(id, fname, lname);
String fee = pIn.next(); //Fred
int credits = pIn.nextInt(); // R --->this is not an integer
对于R值,您必须具有另一个next()。
答案 1 :(得分:0)
在主类第80行中,应使用equals方法,而不是“ ==”。这会使扫描仪读取错误的类型;