关于 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() 读回车符,实现类似“按回车继续”等的操作。

时间: 2024-08-10 14:57:36

关于 Scanner 的 nextLine( ) 方法的相关文章

Scanner类 next与nextLine方法的使用问题

关于nextLine()和next()的使用 关键在于:next() 方法遇见第一个有效字符(非空格,换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描.. 这时使用nextLine(),继续读,有可能读入第一个字符是空格或换行符. 在实现字符窗口的输入时,我个人更喜欢选择使用扫描器Scanner,它操作起来比较简单. 在写作业的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种 是nextLine(),但是这两种方法 究竟有什么区别呢?

转:Scanner中nextLine()方法和next()方法的区别

原文地址:https://blog.csdn.net/hello_word2/article/details/54895106 总结:next() 读取第一个 空白符之前(不包括空白符)的内容,nextline() 读取 第一个回车之前(不包括回车)的内容 我们在使用扫描器Scanner时,遇到了字符串肯定会使用API中定义好的next()和nextLine()方法.两者一个是能读取空格一个是不能读取空格就像下面的样子 当我们把二者交换位置,再来看一下效果 那么这是为什么呢?我们分别看一下API

Scanner类的next()方法和nextLine()方法的异同点

通过一段代码就可以明白其中的奥妙!! 1 import java.util.Scanner; 2 3 public class next_nextLine { 4 public static void main(String[] args) { 5 Scanner s = new Scanner(System.in); 6 7 System.out.println("输入第一个字符串:"); 8 String s1 = s.nextLine(); 9 System.out.printl

Scanner类nextInt方法的使用注意点

一.先看一段正常的代码 1. 一段用Scanner捕获键盘输入的代码: Scanner sc = new Scanner(System.in); // 先读取键盘输入的字符串 System.out.println("input name :"); String name = sc.nextLine(); // 后读取键盘输入的int值 System.out.println("input id :"); int id = sc.nextInt(); System.ou

Java中Scanner的使用方法

Scanner是SDK1.5新增的一个类,但是使用该类创建一个对象.Scanner reader=new Scanner(System.in); 然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型: next.Byte(),nextDouble(),nextFloat,nextInt(),nextLin(),nextLong(),nextShot() 上述方法运行时都会造成阻塞,等待用户在命令行输入数据回车确认.比如,拥护在键盘输入12.34,hasNextFloat(

java.util.Scanner应用详解++扫描控制台输入

java.util.Scanner应用详解 java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地. 一.扫描控制台输入 这个例子是常常会用到,但是如果没有Scanner,你写写就知道多难受了. 当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫

Java中的 Scanner简述(企业笔试在线编程的输入控制)

摘要: 最近进行企业在线笔试时,发现企业的笔试平台大都使用赛码网(虽然槽点很多),而且在线编程都需要使用Scanner来读取程序的输入,因此,笔者就在先辈们的成果上对Scanner做了一份全新的.详细的总结.我们知道,java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地,特此简述. 版权声明: 本文原创作者:书呆子Rico 作者博客地址:http

Scanner类的使用

Scanner类的使用 (接受键盘输入) java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地. [代码示例] 1 public static void main(String[] args) { 2 test01(); 3 test02(); 4 } 5 6 public static void test02() { 7 Scanner s=n

java 中的Scanner

java.util.Scanner是Java5的新特征,主要功能是简化文本扫描.这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地. 一.扫描控制台输入 这个例子是常常会用到,但是如果没有Scanner,你写写就知道多难受了. 当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象.如果要获取输入的内容,则只需要调用S