原创


  Java中Scanner类中的方法next()和nextLine()都是吸取输入台输入的字符,区别:

  •  next()不会吸取字符前/后的空格/Tab键,只吸取字符,开始吸取字符(字符前后不算)直到遇到空格/Tab键/回车截止吸取;
  •  nextLine()吸取字符前后的空格/Tab键,回车键截止。
 import java.util.Scanner;
import java.util.Vector; public class Main{
public static void main(String args[]) {
Scanner reader=new Scanner(System.in);
String s1=reader.nextLine();
String s2=reader.next();
System.out.println(s1);
System.out.println(s2);
}
}

运行样例:

可以看到next()只吸取了askldfj字符,空格后面的都舍弃了!

 import java.util.Scanner;
import java.util.Vector; public class Main{
public static void main(String args[]) {
Scanner reader=new Scanner(System.in);
String s1=reader.next();
// String ss=reader.nextLine();
String s2=reader.nextLine();
System.out.println(s1);
System.out.println(s2);
}
}

将next()和nextLine()换个顺序

运行样例:

只输入了aaaa bbbb cccc,系统自动输出了两行:

aaaa

 bbbb cccc

因为aaaa后面有个空格,next是不需要的,所以next读取结束,剩菜剩饭 bbbb cccc被nextLine捡了

解决方法是加上上面代码注意的 nextLine()

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
String s1=reader.next();
String s2=reader.nextLine();
System.out.println(s1);
System.out.println(s2);
}
}
abcdefg
abcdefg
      //剩下两行

  输入abcdefg后回车程序已经结束了,然后输出了abcdefg和两行换行,原因是因为nextLine吸收了next后的回车。所以要十分注意的是,两个nextLine尽量不要连在一起。而使用next不会出现这种情况,因为next吸取的第一个要求的是字符,最后一个要求是空格、Tab键、回车键。

20:25:47

2018-08-14

Java中方法next()和nextLine()的区别的更多相关文章

  1. Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)

    Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例  原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...

  2. java中的sleep()和wait()的区别

    对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监 ...

  3. java中的this与super的区别

    java中的this与super的区别 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位 代码如下: class Base { Base() { System.out.pr ...

  4. JAVA中extends 与implements有啥区别?

    JAVA中extends 与implements有啥区别?1. 在类的声明中,通过关键字extends来创建一个类的子类.一个类通过关键字implements声明自己使用一个或者多个接口.extend ...

  5. JAVA中String = null 与 String = "" 的区别

    JAVA中String = null 与 String = ""的区别 笔者今天在Debug的时候发现的NPE(NullPointerException),辛辛苦苦地调试了半天,终 ...

  6. Java中的throw和throws的区别

    Java中的throw和throws的区别 1.throw关键字用于方法体内部,而throws关键字用于方法体部的方法声明部分: 2.throw用来抛出一个Throwable类型的异常,而throws ...

  7. 深入理解Java中方法的参数传递机制

    形参和实参 我们知道,在Java中定义方法时,是可以定义参数的,比如: public static void main(String[] args){ } 这里的args就是一个字符串数组类型的参数. ...

  8. java中ArrayList 和 LinkedList 有什么区别

    转: java中ArrayList 和 LinkedList 有什么区别 ArrayList和LinkedList都实现了List接口,有以下的不同点:1.ArrayList是基于索引的数据接口,它的 ...

  9. Java中方法的重载

    Java 中方法的重载 问: 什么是方法的重载呢? 答: 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方 ...

随机推荐

  1. SVN1.6服务端和客户端安装配置指导

    本节向大家描述SVN1.6服务端和客户端安装配置步骤,随着SVN的快速发展,版本也进行了升级更新,本节就和大家一起学习一下SVN1.6服务端和客户端安装配置步骤,欢迎大家一起来学习.下面是具体介绍.1 ...

  2. 【转】CentOs中Apache开启rewrite模块详解

    rewrite是apache环境的一个伪静态功能了,如果我们没有没让Apache开启rewrite功能,网站上所有的rewrite规则都不可使用. centos的配置文件放在: /etc/httpd/ ...

  3. unittest--unittest.defaultTestLoader()的方法

    unittest.defaultTestLoader(): defaultTestLoader()类,通过该类下面的discover()方法可自动更具测试目录start_dir匹配查找测试用例文件(t ...

  4. entering power save mode无法开机解决办法

    标签(空格分隔): 服务器 问题描述: 服务器型号为IBM system x 3755 m3.服务器在搬动之前运行良好,换完位置之后出现按完电源键后无法进入系统,通过显示器看到entering pow ...

  5. laravel安装初体验

    1.github下载laravel 2.通过composer安装相应的库 composer config repo.packagist composer https://packagist.phpco ...

  6. Linux Restricted Shell Bypass

    Author: @n4ckhcker & @h4d3sw0rm Introduction Hello, so first of all let’s explain what is a rest ...

  7. springboot成神之——ioc容器(依赖注入)

    springboot成神之--ioc容器(依赖注入) spring的ioc功能 文件目录结构 lang Chinese English GreetingService MyRepository MyC ...

  8. win7下cygwin 中 root用户的设置

    问题描述: cygwin 在 win10下安装完成后使用当前用户登录后看所在磁盘的文件权限是没有问题的,但在cygwin编译出来的文件的权限为空,这个问题可以使用以下方法来解决: 解决办法: 将cyg ...

  9. Python 约束 , 自定义异常 , 加密 , 日志

    约束 约束 , 约束其派生类:  保证派生类中必须编写send方法 , 不然执行可能就会报错 Python中  语法: class BaseMessage(object): def send(self ...

  10. java5 Condition用法--实现线程间的通信

    Condition的功能类似在传统线程技术中的Object.wait()和Object.natify()的功能,传统线程技术实现的互斥只能一个线程单独干,不能说这个线程干完了通知另一个线程来干,Con ...