Scanner类的next()方法和nextLine()方法的异同点
通过一段代码就可以明白其中的奥妙!!
import java.util.Scanner;
public class next_nextLine {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("输入第一个字符串:");
String s1 = s.nextLine();
System.out.println(s1);
System.out.println("输入第二个字符串:");
String s2 = s.next();
System.out.println(s2);
}
}
输出结果:

结论:
next()方法不能读取空白符,读到空白字符就结束!(包括tab、空格、回车)
nextLine()方法可以读取空格,遇到回车符结束!
再来看一段代码
import java.util.Scanner;
public class next_nextLine {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("输入第一个字符串:");
String s1 = s.next();//交换next()和nextLine()方法的位置
System.out.println(s1);
System.out.println("输入第二个字符串:");
String s2 = s.nextLine();
System.out.println(s2);
}
}
输出结果:

结论:
根据之前的结论,next()方法读取到空白符就结束,nextLine()读取到回车结束也就是“\r”,那么我们上面遇到的问题就是next()读取到空白符前的数据就结束了,把回车“\r”留给了nextLine(),所以nextLine()没有给你输入的机会,就直接结束了。
解决办法:在next()下面再加一个nextLine()
import java.util.Scanner;
public class next_nextLine {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("输入第一个字符串:");
String s1 = s.next();//交换next()和nextLine()方法的位置
System.out.println(s1);
s.nextLine();
System.out.println("输入第二个字符串:");
String s2 = s.nextLine();
System.out.println(s2);
}
}
输出结果:

Scanner类的next()方法和nextLine()方法的异同点的更多相关文章
- Scanner类的next()方法和nextLine()方法的区别(简)
1. 空白符:回车.空格.tab等 2. next()方法读取到空白符就结束 3. nextLine()方法读取到回车结束,也就是 "\r"
- StringBuffer类的delete()方法和deleteCharAt()方法的区别
引言 StringBuffer类的delete()方法和deleteCharAt()方法都是用来删除StringBuffer字符串中的字符 区别 1.对于delete(int start,int en ...
- 关于Object类的equals方法和hashCode方法
关于Object类的equals的特点,对于非空引用: 1.自反性:x.equals(x) return true : 2.对称性:x.equals(y)为true,那么y.equals(x)也为tr ...
- 并发基础篇(六):线程Thread类的start()方法和run()方法【转载】
[转载] 一.初识java的线程是通过java.lang.Thread类来实现的.VM启动时会有一个由主方法所定义的线程.可以通过创建Thread的实例来创建新的线程.每个线程都是通过某个特定Thre ...
- Android中Path类的lineTo方法和quadTo方法画线的区别
转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...
- Object类的toString方法和equals方法
Object类 概述 java.long.Object 类是java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终的父类就是Object 类Object是类层 ...
- emberjs重写补充类之reopen方法和reopenClass方法
无需一次性将类定义完全,你可以使用reopen方法来重新打开(reopen)一个类并为其定义新的属性. Person.reopen({ isPerson: true }); Person.create ...
- Java基础知识强化84:System类之exit()方法和currentTimeMillis()方法
1. exit方法: public static void exit(int status): 终止当前正在运行的Java虚拟机.参数用作状态码:根据惯例,非0的状态码表示异常终止. 调用System ...
- Java中的class类的cast方法和asSubclass方法
一般来说cast是转型的意思,但是学java的时间也不短了,class类居然还有cast这个方法,这里来学习一下这个cast有何用. 第一次看到这个cast是在Spring的源码中, spring-f ...
随机推荐
- 从零开始搭建Java开发环境第二篇:如何在windows10里安装MySQL
1 下载安装包 1.1 压缩包 https://dev.mysql.com/downloads/mysql/ [外链图片转存失败(img-oesO8K09-1566652568838)(data:im ...
- 你好spring-cloud-kubernetes
关于spring-cloud-kubernetes spring-cloud-kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用 ...
- JavaScript算法模式——动态规划和贪心算法
动态规划 动态规划(Dynamic Programming,DP)是一种将复杂问题分解成更小的子问题来解决的优化算法.下面有一些用动态规划来解决实际问题的算法: 最少硬币找零 给定一组硬币的面额,以及 ...
- 背包形动态规划 fjutoj2375 金明的预算方案
金明的预算方案 TimeLimit:1000MS MemoryLimit:128MB 64-bit integer IO format:%lld Problem Description 金明今天 ...
- CodeForces Educational Codeforces Round 51 (Rated for Div. 2)
A:Vasya And Password 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen(&q ...
- CodeM资格赛 优惠券
[编程|1000分] 优惠券 时间限制:1秒空间限制:32768K 题目描述 美团点评上有很多餐馆优惠券,用户可以在美团点评App上购买.每种优惠券有一个唯一的正整数编号.每个人可以拥有多张优惠券,但 ...
- 通过脚本实现将服务器的Log实时传送到Telegram群组
首先说下需求,IT老大提出的一个需求,实现将php-laravel的应用日志实时传送到telegram的监控群组中,不用登陆服务器就可以实时查看应用的日志. 具体思路是: 先要将日志切割,并实时更新这 ...
- 为什么Hashtable ConcurrentHashmap不支持key或者value为null
ConcurrentHashmap HashMap和Hashtable都是key-value存储结构,但他们有一个不同点是 ConcurrentHashmap.Hashtable不支持key或者val ...
- Java IO写文件效率
写入方法: /** *1 按字节写入 FileOutputStream * * @param count 写入循环次数 * @param str 写入字符串 */ public void output ...
- NOIP2002 1.级数求和
这题目...... 题目:已知:Sn= 1+1/2+1/3+…+1/n.显然对于任意一个整数K,当n足够大的时候,Sn大于K.现给出一个整数K(1<=k<=15),要求计算出一个最小的n: ...