nextLine()和next()的区别和使用方法
最近在笔试,刷剑指Offer时,都是只需要把方法实现了就行。但是!!!笔试时候会发现,大部分会要求你把main函数也code出来,真是醉了,第一次笔试时候搞的晕乎乎的.....
废话不多说,那么在写输入输出中,肯定要用到Scanner类了,其中不少都需要读取一个整数或者一个整型数组。当读入整数时(以int为例),直接就nextInt()就好,可是当读入一个整型数组时(数字之间用空格隔开),就涉及到用nextLine()和next()了。看了一下网上的分析,都很到位吗,在这里我在总结一下希望给大家提供一些思考,于此同时也给自己加深一下记忆!
next()
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。比如,在控制台输入“ gjm gjm ”时,一次next()读入进来的仅仅是"gjm"。它不能得到带空格的字符串的!
nextLine()
nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符。比如,在控制台输入“ gjm gjm ”时,一次nextLine()读入进来的结果是" gjm gjm "。它是可以得到带空格的字符串的!
网上有个小例子,我看着挺好,如下:
1 import java.util.Scanner;
2
3 public class NextTest {
4 public static void main(String[] args) {
5 test1();
6 //test2();
7 }
8
9 public static void test1() {
10 String s1,s2;
11 Scanner sc=new Scanner(System.in);
12 System.out.print("请输入第一个字符串:");
13 s1=sc.nextLine();
14 System.out.print("请输入第二个字符串:");
15 s2=sc.next();
16 System.out.println("输入的字符串是:"+s1+" "+s2);
17 }
18 public static void test2() {
19 String s1,s2;
20 Scanner sc=new Scanner(System.in);
21 System.out.print("请输入第一个字符串:");
22 s1=sc.next();
23 System.out.print("请输入第二个字符串:");
24 s2=sc.nextLine();
25 //s2=sc.nextLine();
26 System.out.println("输入的字符串是:"+s1+" "+s2);
27 }
28 }
结果:
- 当运行test1();时,结果如下示:
 

- 当运行test2();时,结果如下示:
 

即在我刚输入完home后,按下回车,直接弹出结果,程序执行完毕【内心呼啸,tmd我第二个字符串还没输入呢就给劳资返回结果了】。
通过分析发现:是next()读不到回车的,而是将回车作为分隔符,并且留给了nextLine(),nextLine()毫不客气,直接读入,然后结束。
故想要输出和test1()一样的结果,需要将test2()中nextLine()后再加一个nextLine(),第一个用来读next()留下的回车分隔符,第二个用来读work。故如上所示,将第25行程序加入,然后执行,就会发现结果和test1()一样。
Over...
参考:
1. https://blog.csdn.net/Zhiyuan_Ma/article/details/51592730
nextLine()和next()的区别和使用方法的更多相关文章
- java中Scanner类nextLine()和next()的区别和使用方法
		
转载:http://blog.csdn.net/zhiyuan_ma/article/details/51592730 在实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较 ...
 - Scanner类nextLine()和next()的区别和使用方法
		
next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的 ...
 - Bootstrap栅栏布局里col-xs-*、col-sm-*、col-md-*、col-lg-*之间的区别及使用方法
		
原文:Bootstrap栅栏布局里col-xs-*.col-sm-*.col-md-*.col-lg-*之间的区别及使用方法 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...
 - 【JavaScript】call和apply区别及使用方法
		
一.方法的定义call方法: 语法:fun.call(thisArg[, arg1[, arg2[, ...]]])定义:调用一个对象的一个方法,以另一个对象替换当前对象.说明:call 方法可以用来 ...
 - python socket编程入门(编写server实例)+send 与sendall的区别与使用方法
		
python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参 ...
 - GET方法和POST方法的区别,Get方法到底可传递的字符串的最大长度是多少?
		
GET方法和POST方法的区别,Get方法到底可传递的字符串的最大长度是多少?曾经人介绍,如果使用GET方式传输参数,URL的最大长度是256个字节,对此深信不疑. 但是最近看到一些超长的url,能够 ...
 - C#异步和多线程以及Thread、ThreadPool、Task区别和使用方法
		
本文的目的是为了让大家了解什么是异步?什么是多线程?如何实现多线程?对于当前C#当中三种实现多线程的方法如何实现和使用?什么情景下选用哪一技术更好? 第一部分主要介绍在C#中异步(async/awai ...
 - java中nextLine()和next()的区别
		
>概述 在实现字符窗口的输入时,我个人更喜欢选择使用扫描器Scanner,它操作起来比较简单.我发现用Scanner实现字符串的输入有两种方法,一种是next(),一种nextLine(),但是 ...
 - next()nextLine()以及nextInt()的区别及用法【转载】
		
next().nextLine().nextInt()作为scanner内置的方法,常常让人傻傻分不清楚,今天在这里记下他们的区别以及以此区别为出发点的用法:他们的区别在于对于空格的处理方式不同,以及 ...
 
随机推荐
- 【图像处理】RGB Bayer Color分析
			
Bayer色彩滤波阵列 拜耳色彩滤波阵列(Bayer Color Filter Array,CFA)是非常有名的彩色图片的数字采集格式.色彩滤波器的模式如上图所示,由一半的G,1/4的R,1/4的B组 ...
 - 试玩 GOWOG ,初探 OpenAI(使用 NeuroEvolution 神经进化)与 Golang 多人在线游戏开发
			
GOWOG: 原项目:https://github.com/giongto35/gowog 我调整过的:https://github.com/Kirk-Wang/gowog GOWOG 是一款迷你的, ...
 - Var_init class
			
1 import org.apache.hadoop.conf.Configuration; 2 import org.apache.hadoop.fs.FSDataInputStream; 3 im ...
 - Avoid catching exceptions inside atomic!  You may need to manually revert model state when rolling back a transaction. 避免异常程序不抛错误  回滚 导致 自增id不连续。
			
https://docs.djangoproject.com/en/3.0/topics/db/transactions/ You may need to manually revert model ...
 - URL 重定向机制
			
由于存在上述三种 URL 重定向机制,那么在多种方法同时设定的情况下,哪种方法会首先起作用呢?优先级顺序如下: HTTP 协议的重定向机制永远最先触发,即便是在没有传送任何页面--也就没有页面被(客户 ...
 - shiro的授权与认证
			
shiro的授权与认证 package com.cy.pj.common.aspect;import java.lang.reflect.Method;import java.util.Arrays; ...
 - The OAuth 2.0 Authorization Framework  OAuth2.0的核心角色code  扫码登录
			
RFC 6749 - The OAuth 2.0 Authorization Framework https://tools.ietf.org/html/rfc6749 The OAuth 2.0 a ...
 - [BJOI2016]水晶 做题心得
			
[BJOI2016]水晶 做题心得 这是一个写了我两小时的傻逼题.写这个题浪费了一堆时间后,我才意识到我码力又不行了.于是整理起了实现技巧,开始练码力. 思路 不难.首先把 \((x,y,z)\) 变 ...
 - BFS DFS与回溯
			
https://blog.csdn.net/u014303647/article/details/88328526 cyc: https://github.com/CyC2018/CS-Notes/b ...
 - SpringMVC听课笔记(SpringMVC 表单标签 & 处理静态资源)
			
1.springmvc表单标签,可以快速开发,表单回显,但是感触不深 2.静态资源的获取,主要是要配置这个