当前位置: 移动技术网 > IT编程>开发语言>Java > Java Scanner类中next()和nextLine()方法的区别

Java Scanner类中next()和nextLine()方法的区别

2019年03月12日  | 移动技术网IT编程  | 我要评论

今天在练习中遇到了调用scanner类中的nextline()输入字符串自动跳过的问题,在博客上看了两篇解答,原来是nextline()误认了前面next()输入时的enter,但还是想了一会儿才弄清楚,这里再做个小总结。

1.在next()和nextline()方法连用时,nextline()会在刚刚输入时就误认了前面next()结束输入的enter,因此还没等输入就直接结束了;

2.那么为什么反过来nextline()在前、next()在后,next()就没有这个问题呢?
这是因为next()方法在输入时要遇到一个有效字符后再遇到enter才会结束,因此当它刚输入就遇到enter是不会结束的,也就可以继续输入了。

3.解决方法:如果一定要用nextline(),可以在nextline()前再添加一个nextline()用于回收enter,这样下一个nextline()就可以正常输入了。
例如: scanner s = new scanner(system.in);
      string str1 = s.next();
      string str2 = s.nextline(); //用于回收enter
      string str3 = s.nextline();




如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网