哈尔滨站建筑面积,xp花生壳做自己的网站,想学网站建设与设计的书籍,教育网站如何做seo错误如下#xff1a;
有时候还会抛出InputMismatchException异常 看#xff01;我只输入了一个5#xff0c;并没有给str赋值#xff0c;它就已经将结果打印出来了#xff01;这就意味着#xff0c;str是读取到了数据的#xff0c;只不过这个数据并不是我们想要的输入的…错误如下
有时候还会抛出InputMismatchException异常 看我只输入了一个5并没有给str赋值它就已经将结果打印出来了这就意味着str是读取到了数据的只不过这个数据并不是我们想要的输入的数据
这是因为nextInt() / nextDouble() 和 nextLine()的处理机制不同
nextInt() / nextDouble()在缓冲区中遇到 回车符、空格等空白字符时它会将空白字符之前的数据都读走但此时空白字符还留在缓冲区中nextLine()会把包括空白字符在内的数据都读走所以这时就可以说得通为什么我们并没有输入但是str就已经有值了这是因为它读取到了我们在nextInt()输入最后打出的回车符
解决方案
在nextInt() / nextDouble()再添加一个nextLine()让这个nextLine()将空白字符读走将nextLine()换成next() 补充说明 Scanner的next()、nextInt()、nextLine()读取机制更详细的介绍【JAVA】Scanner的next()、nextInt()、nextLine()读取机制