遇到一个有意思的东西,在整理字符串这块知识的时候,发现我在用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()方法的区别相关推荐

  1. Scanner中nextLine()方法和next()方法的区别

    我们在使用扫描器Scanner时,遇到了字符串肯定会使用API中定义好的next()和nextLine()方法.两者一个是能读取空格一个是不能读取空格就像下面的样子 当我们把二者交换位置,再来看一下效 ...

  2. Java类型转换中valueOf方法和parseInt方法的区别

    在Java的类型转换中,我们经常会使用valueOf或者parseInt(parseFloat/parseDouble等)来转换.这二者有什么区别呢?我们看如下的代码: String inputVal ...

  3. python predict_对Keras中predict()方法和predict_classes()方法的区别说明

    1 predict()方法 当使用predict()方法进行预测时,返回值是数值,表示样本属于每一个类别的概率,我们可以使用numpy.argmax()方法找到样本以最大概率所属的类别作为样本的预测标 ...

  4. Java并发编程—schedule方法和scheduleAtFixedRate方法的区别

    原文作者:一叶丿清风 原文地址:schedule方法和scheduleAtFixedRate方法的区别 schedule方法和scheduleAtFixedRate方法都可以实现任务的延时和不延时执行 ...

  5. ExtJS中listener方法和handler方法的区别

    listener方法和handler方法的区别在文档中的说明的太玄乎了,看不懂 listeners监听能够对一个click Event事件添加任意多个的事件响应处理函数 而handler处理只能够通过 ...

  6. Keras中predict()方法和predict_classes()方法的区别

    正如上篇博客中所讲,在Keras框架下执行深度学习任务时,一般会先根据训练数据集训练出模型,然后拿训练好的模型到生产环境(测试集)中部署并生产.以分类问题为例,当训练好了分类模型之后,我们要用这个模型 ...

  7. VBA中Activate方法和Select方法的区别

    VBA中的Activate方法和Select方法看起来似乎相同,其实二者是有区别的.Activate方法的作用是激活,而Select方法的作用是选择.其区别如下: 1.对于"Sheets&q ...

  8. jquery中prop()方法和attr()方法的区别浅析

    引用:http://www.jb51.net/article/41170.htm 官方例举的例子感觉和attr()差不多,也不知道有什么区别,既然有了prop()这个新方法,不可能没用吧,那什么时候该 ...

  9. Java中append方法和add方法的区别

    @TOC append Java里只有StringBuffer和StringBuild才有append方法,Sting里是没有append方法的 在动态数组里添加字符串,相当于+,xxxx" ...

最新文章

  1. Unity + SQL数据库创建管理玩家排行榜学习教程
  2. “拒绝在 iPad 上运行 Xcode!”
  3. Linux 实时查看日志文件的 4 种方法
  4. python空类型-在Python中__________表示空类型。
  5. 2026年,数据中心电力市场将达到150亿美元
  6. SAP UI5中的同步请求和异步请求
  7. 电脑向linux服务器传输文件,windows如何通过ssh工具向linux服务器上传和下载文件?...
  8. python爬虫爬取豆瓣电影
  9. Cool Edit Pro软件介绍
  10. Ajax的三种写法(最原始的写法+最常用的写法+最简便的写法)
  11. 计算机电路基础张志良,计算机电路基础 第2版
  12. 电子书CHM格式转换为PDF文件(转)
  13. 台式机系统安装成功之后,官网下载,安装台式机主板最匹配的官网驱动
  14. 我的家计算机教学反思,我的家教学反思
  15. socket通信技术
  16. win本地安装xxl-job服务
  17. 帮爷爷刻录VCD光盘
  18. 中拓互联域名小课堂:.购物域名,自建商城的标配
  19. Android N BlockedNumberContract原生黑名单(一)
  20. vscode更新之后rg.exe占用cpu过高

热门文章

  1. 影视解说怎么制作?求推荐免费的配音软件
  2. 公众号开发教程:微信视频预览一半就要收费是怎么做的
  3. 电脑C盘无缘无故就占满了
  4. 计算机网络一到六章知识点
  5. colgroup的用法
  6. matlab与abaqus结构优化,基于MATLAB和ABAQUS的螺旋钻杆参数优化与数值模拟
  7. 用U盘装系统,出现reboot and select proper...
  8. 2018年下教师资格证考试倒计时3天
  9. 微信小程序登录code been used或者invalid code错误解决方案
  10. 天堂在前方——与所有有梦想、有追求的人共勉