Java中nextLine()自动读取了被nextInt()去掉的Enter作为他的结束符,所以没办法给nextInt(从键盘输入值。经本人验证,其他的nextXxx()的方法,如:nextDouble(), nextFloat() nextInt() 等与nextLine()连用时都存在这个问题!!!
解决的办法是:在每一nextDouble()、nextFloat()、nextInt()等语句之后加一个nextLine()语句!
将被next()去掉的Enter结束符过滤掉
方法如下:
- <div style="text-align: justify;"><font color="#333333" face="宋体" size="2"><span style="line-height: 28px;"><b>Scanner sc=new Scannsr(System.in);</b></span></font></div><div style="text-align: justify;"><font color="#333333" face="宋体" size="2"><span style="line-height: 28px;"><b>System.out.println("请输入一个数");</b></span></font></div><div style="text-align: justify;"><font color="#333333" face="宋体" size="2"><span style="line-height: 28px;"><b>int i=</b></span></font><b style="color: rgb(51, 51, 51); font-family: 宋体; font-size: small; line-height: 28px;">nextInt();</b></div><div style="text-align: justify;"><font color="#333333" face="宋体" size="2"><span style="line-height: 28px;"><b>sc.nextLine();</b></span></font></div><div style="text-align: justify;"><b style="color: rgb(51, 51, 51); font-family: 宋体; font-size: small; line-height: 28px;">System.out.println("请输入一个字符串");</b></div><div style="text-align: justify;"><b style="color: rgb(51, 51, 51); font-family: 宋体; font-size: small; line-height: 28px;">String s=sc.nextLine();</b></div><div style="text-align: justify;"><b style="color: rgb(51, 51, 51); font-family: 宋体; font-size: small; line-height: 28px;">......</b></div><div style="text-align: justify;"></div>
复制代码
|