java——Scanner中nextLine()方法和next()方法的区别
遇到一个有意思的东西,在整理字符串这块知识的时候,发现我在用Scanner函数时,在字符串中加入空格,结果空格后面的东西没有输出来(/尴尬),不多说直接上代码:
import java.util.Scanner;//Scanner中nextLine()方法和next()方法的区别
public class ScannerString {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入字符串(nextLine):");String str1 = input.nextLine();System.out.println(str1);System.out.println("请输入字符串(next):");String str = input.next();System.out.println(str);
}}
首先第一次测试:nextLine与next都没有空格:
这时的结果都是正确的。
第二次:nextLine与next都有空格:
这时的结果发现next只输出了“曹老板”后面的"很有钱"并没有输出。
第三次:我们将代码中next和nextLine的顺序调整一下,然后再进行测试:
import java.util.Scanner;//Scanner中nextLine()方法和next()方法的区别
public class ScannerString {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入字符串(next):");String str = input.next();System.out.println(str);System.out.println("请输入字符串(nextLine):");//曹老板很有钱String str1 = input.nextLine();System.out.println(str1);}
}
这是调整好顺序的代码。
下面进行测试:
next与nextLine都没有空格:
哇,是不时发现什么了, 我还没有输入nextLine的字符串,它已经停掉了,
于是我查阅了Api文档
知道你们看不懂,解释一下:
Scanner是一个扫描器,我们录取到键盘的数据,先存到缓存区等待读取,它判断读取结束的标示是 空白符;比如空格,回车,tab 等等。
next()方法读取到空白符就结束l;
nextLine()读取到回车结束也就是“\r”;
所以没还顺序前测试的时候next()再检测的空格的时候就结束输出了。
修改顺序后遇到的问题就是因为next()读取到空白符前的数据时结束了,然后把回车“\r”留给了nextLine();所以上面nextLine()没有输出,不输出不代表没数据,是接到了空(回车“/r”)的数据。
java——Scanner中nextLine()方法和next()方法的区别相关推荐
- Scanner中nextLine()方法和next()方法的区别
我们在使用扫描器Scanner时,遇到了字符串肯定会使用API中定义好的next()和nextLine()方法.两者一个是能读取空格一个是不能读取空格就像下面的样子 当我们把二者交换位置,再来看一下效 ...
- Java类型转换中valueOf方法和parseInt方法的区别
在Java的类型转换中,我们经常会使用valueOf或者parseInt(parseFloat/parseDouble等)来转换.这二者有什么区别呢?我们看如下的代码: String inputVal ...
- python predict_对Keras中predict()方法和predict_classes()方法的区别说明
1 predict()方法 当使用predict()方法进行预测时,返回值是数值,表示样本属于每一个类别的概率,我们可以使用numpy.argmax()方法找到样本以最大概率所属的类别作为样本的预测标 ...
- Java并发编程—schedule方法和scheduleAtFixedRate方法的区别
原文作者:一叶丿清风 原文地址:schedule方法和scheduleAtFixedRate方法的区别 schedule方法和scheduleAtFixedRate方法都可以实现任务的延时和不延时执行 ...
- ExtJS中listener方法和handler方法的区别
listener方法和handler方法的区别在文档中的说明的太玄乎了,看不懂 listeners监听能够对一个click Event事件添加任意多个的事件响应处理函数 而handler处理只能够通过 ...
- Keras中predict()方法和predict_classes()方法的区别
正如上篇博客中所讲,在Keras框架下执行深度学习任务时,一般会先根据训练数据集训练出模型,然后拿训练好的模型到生产环境(测试集)中部署并生产.以分类问题为例,当训练好了分类模型之后,我们要用这个模型 ...
- VBA中Activate方法和Select方法的区别
VBA中的Activate方法和Select方法看起来似乎相同,其实二者是有区别的.Activate方法的作用是激活,而Select方法的作用是选择.其区别如下: 1.对于"Sheets&q ...
- jquery中prop()方法和attr()方法的区别浅析
引用:http://www.jb51.net/article/41170.htm 官方例举的例子感觉和attr()差不多,也不知道有什么区别,既然有了prop()这个新方法,不可能没用吧,那什么时候该 ...
- Java中append方法和add方法的区别
@TOC append Java里只有StringBuffer和StringBuild才有append方法,Sting里是没有append方法的 在动态数组里添加字符串,相当于+,xxxx" ...
最新文章
- Unity + SQL数据库创建管理玩家排行榜学习教程
- “拒绝在 iPad 上运行 Xcode!”
- Linux 实时查看日志文件的 4 种方法
- python空类型-在Python中__________表示空类型。
- 2026年,数据中心电力市场将达到150亿美元
- SAP UI5中的同步请求和异步请求
- 电脑向linux服务器传输文件,windows如何通过ssh工具向linux服务器上传和下载文件?...
- python爬虫爬取豆瓣电影
- Cool Edit Pro软件介绍
- Ajax的三种写法(最原始的写法+最常用的写法+最简便的写法)
- 计算机电路基础张志良,计算机电路基础 第2版
- 电子书CHM格式转换为PDF文件(转)
- 台式机系统安装成功之后,官网下载,安装台式机主板最匹配的官网驱动
- 我的家计算机教学反思,我的家教学反思
- socket通信技术
- win本地安装xxl-job服务
- 帮爷爷刻录VCD光盘
- 中拓互联域名小课堂:.购物域名,自建商城的标配
- Android N BlockedNumberContract原生黑名单(一)
- vscode更新之后rg.exe占用cpu过高