目录

javaSE错误之-java.util.InputMismatchException

javaSE错误之 java.util.InputMismatchException

javaSE错误之java.lang.StringIndexOutOfBoundsException

错误描述:

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 niukewang.Main2.init(Main2.java:66)

at niukewang.Main2.main(Main2.java:30)

错误解决:

引起该错误的原因是由于我们的Scanner读入的字符与我们的变量类型不同导致的:

例如:

int a = 0;

a = in.nextDouble();

就会引起该错误的出现。但是需要注意的是,有时候引起该错误的原因很多时候不是显示调用引起的,很多时候是由于没有使用好输入导致的一系列输入错误,如下图:

注意:nextLine()在读入文件时会读取该文件的字符直到读取到换行符为止,而我们在控制台输入时,它会将回车读入而读不到我们想要的字符串。

字符串的正确读取方式:

Scanner in = new Scanner(Syetem.in);

String row = in.next();//读入字符串

row = in.nextLine();//会读入我们的换行符,导致一系列的错误

https://i-blog.csdnimg.cn/blog_migrate/8005119953b2bc22737e698af72b0751.png