java中nextLine()和next()的区别

在实现字符窗口的输入时,我个人更喜欢选择使用扫描器Scanner,它操作起来比较简单。在写作业的过程中,我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(),但是这两种方法究竟有什么区别呢?我查了一些资料总结了一下,希望对大家有所帮助~

操作方法

  • 01

    首先,next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。简单地说,next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,所以next方法不能得到带空格的字符串而nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

  • 02

    鉴于以上两种方法的只要区别,同学们一定要注意next()方法和nextLine(0方法的连用,下面举个例子来说明: import java.util.Scanner;public class NextTest { public static void main(String[] args) {  // TODO Auto-generated method stub  String s1,s2;  Scanner sc=new Scanner(System.in);  System.out.print("请输入第一个字符串:");  s1=sc.nextLine();  System.out.print("请输入第二个字符串:");  s2=sc.next();  System.out.println("输入的字符串是:"+s1+"  "+s2); }} 运行结果: 请输入第一个字符串:home请输入第二个字符串:work输入的字符串是:home  work 但如果把程序改一下, s1=sc.next(); s2=sc.nextLine(); 运行结果是: 请输入第一个字符串:home请输入第二个字符串:输入的字符串是:home

  • 03

    nextLine()自动读取了被next()去掉的Enter作为他的结束符,所以没办法给s2从键盘输入值。经过验证,其他的next的方法,如double nextDouble()  , float nextFloat() , int nextInt() 等与nextLine()连用时都存在这个问题,解决的办法是:在每一个 next()、nextDouble()  、 www.gzlij.com()、nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉 import java.util.Scanner;public class NextTest { String s1,s2; Scanner sc=new Scanner(System.in); System.out.print("请输入第一个字符串:"); s1=sc.next(); sc.nextLine(); System.out.print("请输入第二个字符串:"); s2=sc.nextLine(); System.out.println("输入的字符串是:"+s1+"  "+s2);} 运行结果是: 请输入第一个字符串:home请输入第二个字符串:work输入的字符串是:home  work

(0)

相关推荐

  • java中抽象类和接口的区别

    java中抽象类和接口的区别是什么?java 抽象类和java接口类有什么区别?java中抽象类与接口有哪些区别?Java中抽象类和接口的区别?Java中抽象类与接口有什么区别?Java中抽象类与接口 ...

  • Java中 a++ 和 ++a 的区别

    JAVA是一种开发代码语言,那么JAVA中的a++和++a有什么区别呢? 操作方法 01 先说说两者之间的共同点,不管是a++还是++a,在编辑代码的时候都是运用a+1的代码进行编程的. 02 说说两 ...

  • java 中堆和栈的区别方法

    一直以来对java中堆和栈都有点模糊:现在终于搞明白啦 特点: 1. 栈的特点是 : 容量小 速度快 适合存放小型数据 如基本数据类型和对象类型的引用 在栈中变量直接指向存放变量值的空间 对于对象引用 ...

  • Java中String 和StringBuffer的区别

    先看下面的这个例子,读懂这个例子,你就理解了. publicclass Test { publicstaticvoid stringReplace (String text) { text = tex ...

  • C++、C、Java中回车与换行的区别与联系

    回车.换行平时简写为<CR>.<LF>,然而我们常提及到回车与换行却没有注意两者的具体区别. 具体来说操作系统不同,回车与换行的意义各不相同. 一.windows 01 回车( ...

  • java中equal与==的区别

    介绍一下java中==和equals方法的区别.在初学java时需要弄清楚这个问题,以免在今后在编码过程中出现一些低级错误. 操作方法 01 首先,在eclipse中运行图示所示代码,通过结果对&qu ...

  • java中4种修饰符访问权限的区别及详解全过程

    java中4中修饰符分别为public.protect.default.private,他们这就说明了面向对象的封装性,所以我们要适用他们尽可能的让权限降到最低,从而安全性提高. 下面详细讲述下它们的 ...

  • Java中final、finally、finalize的区别

    Java中final.finally.finalize的区别与用法,困扰了不少学习者,下面我们就这个问题进行一些探讨,希望对大家的学习有所帮助. 操作方法 01 简单区别: final用于声明属性,方 ...

  • java中&与&&的区别

    java中&与&&的区别是什么?小编来告诉你,请看下文. 操作方法 01 最简单的区别是,&无论str != null 是否为true,程序都会执行,而&&am ...