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();//会读入我们的换行符,导致一系列的错误