首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:inputMismatchException?

错误:inputMismatchException?
EN

Stack Overflow用户
提问于 2016-05-18 06:21:11
回答 1查看 74关注 0票数 0
代码语言:javascript
复制
import java.util.Scanner;                                         
public class Unit1Err1{                                             
 public static void  main( String[] args ) {                                     
 Scanner inPut = new Scanner(System.in);                                     
     String sName = inPut.nextLine();                                              
     double gpa = inPut.nextDouble();                                               
     int noOfCourses = inPut.nextInt();                                      
  System.out.printf("%11s %18s %12s","Name","GPA","No Of Courses");
   System.out.println();
  System.out.printf("%11s %18s %12s",sName,gpa,noOfCourses);
   System.out.println();     
     sName = inPut.nextLine();                                                     
     gpa = inPut.nextDouble();                                                     
     noOfCourses = inPut.nextInt();                                        
   System.out.printf("%11s %18s %12s",sName,gpa,noOfCourses); 
   System.out.println();
    sName = inPut.nextLine();                                                 
    gpa = inPut.nextDouble();                                                      
    noOfCourses = inPut.nextInt();                                         
   System.out.printf("%11s %18s %12s",sName,gpa,noOfCourses);  
    System.out.println();
   }                                                                         
 }  

出现的错误是:

代码语言:javascript
复制
CompileRunTest: throwable = java.util.InputMismatchException
java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:909)
    at java.util.Scanner.next(Scanner.java:1530)
    at java.util.Scanner.nextDouble(Scanner.java:2456)
    at Unit1Err1.main(Unit1Err1.java:13)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at tester.TesterThread.invokeMain(TesterThread.java:32)
    at tester.TesterThread.run(TesterThread.java:38)

我读到这个错误很可能是由于一个值试图被输入到一个变量类型,但它不是。但我的输入是:

Henny Penny

3.5

15

禅宗本

2.8

10

曾傑瑞浆果

4.0

25

除非这是一个简单的错误,否则我相信我到目前为止一切都是正确的。任何帮助都将不胜感激,

注意:这被标记为重复的,但我已经完成了另一个所显示的,它仍然没有工作

EN

回答 1

Stack Overflow用户

发布于 2016-05-18 06:31:59

这可能是您对nextInt()方法的调用不会使用输入中的换行符。当您输入"15“时,第二个nextLine()调用将获取换行符,而nextDouble将获取"Zen Ben”作为输入。只需再次调用nextLine()以删除不需要的换行符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37287157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档