今天在练习中遇到了调用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();




相关文章:

  • 2021-07-01
  • 2022-12-23
  • 2021-10-09
  • 2021-05-09
  • 2021-07-20
  • 2021-08-25
  • 2021-10-21
猜你喜欢
  • 2022-12-23
  • 2021-11-29
  • 2021-11-21
  • 2021-08-21
相关资源
相似解决方案