关于 Scanner 的 nextLine( ) 方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 Scanner 的 nextLine( ) 方法相关的知识,希望对你有一定的参考价值。

先看以下代码:
  1. Scanner read = new Scanner(System.in);
  2. int a = read.nextInt();
  3. String str = read.nextLine();
  4. System.out.println(a);
  5. System.out.println(str);
试着输入:12、回车
发现程序终止了,直接输出了12,不能输入 str 了:
技术分享
 

原因是 read() 不会跳过回车符,nextLine() 会读回车符,输完12后输入的那个回车符直接就被读到 str 中了,这时 str 是一个回车符并被输出,所以有个空行。
解决办法:在第三行之前调一次 nextLine(),读掉上一次的回车符。

可以利用这一特性,用 readLine() 读回车符,实现类似“按回车继续”等的操作。


以上是关于关于 Scanner 的 nextLine( ) 方法的主要内容,如果未能解决你的问题,请参考以下文章

Scanner.next()与Scanner.nextLine()的区别

Scanner对象next与nextLine

Scanner中的nextLine()不执行

从 Socket 使用 InputStream 时的 Scanner.nextLine() 块

Scanner类的next() 和nextLine()的区别

Scanner类的next() 和nextLine()的区别