这有一个nextLine()的问题:

为什么我还没有来得及输入一个字符串,程序就结束了?

是因为:
我输入完110之后,又继续输入了一个换行符。此时,nextInt()他只会把110扫描读取到,此时光标位置在110后面;nextLine()他会从光标位置 开始扫描直到换行符(包含换行符),因此nextLine()他扫描了一个换行符作为输入。因此,我们还没来得及从键盘输入字符串程序就已经结束了。因此打印的内容是空空的。


nextInt()、next()和nextLine()区别

  • nextInt():
      遇见第一个有效字符(非空格,非换行符)时,开始扫描读取,nextInt()只读取数值。当遇见第一个 空格 或 换行符时,结束扫描。
      扫描结束标志是:遇到空格符 或者 换行符就停止扫描,不扫描空格或换行符。
      扫描结束后,光标在读取的最后一个数字后面,光标在本行中。

  • next():
      next() 方法遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个 空格 或 换行符时,结束扫描。获取扫描到的内容是第一个扫描到的不含空格、换行符的单个字符串。
      扫描结束标志是:遇到空格符 或者 换行符。
      扫描结束后,光标在读取的最后一个字符后面,光标在本行中。

  • nextLine():
      nextLine() 是扫描读取一行内容 作为一个字符串。
      结束的标志:扫描完整行内容(包括空格 或者 换行符)。
      扫描结束后,光标移动到下一行。


解决办法:
  可以在nextInt() 和 nextLine()之间 再添加一个nextLine()用来吸收掉空格 或 回车;


Scanenr的使用:

public static void test1(){//创建一个Scanner键盘录入对象Scanner scanner = new Scanner(System.in);if(scanner.hasNextInt()){ //判断当前是否还有键盘输入if(scanner.hasNextInt()){ //判断当前的输入是否是整数格式,若是整数,则为true。执行代码块int i = scanner.nextInt();     //扫描得到键盘输入的数字数据。System.out.println(i);System.out.println("******");}}}

注意

  • 一般,hasNextInt() 判断有没有键盘的输入。
  • hasNextInt() :判断从键盘输入的数据是否为int格式,若是int格式,则返回true。否则,返回false。
  • hasNext() :判断从键盘输入的数据是否为字符。//总是返回true。

Scanner的用法(扫描器深入)相关推荐

  1. Java中Scanner详细用法

    一.Scanner 对象 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.java.util.Scanner 是Java5的新特征, ...

  2. Scanner的用法强化

    Scanner的用法强化 Scanner类的功能 可以接收键盘的输入 实现人机交互 使用Scanner的步骤 导入Scanner 获得一个对象(我们操作的数据英雄,它有自己的密技) 放技能 第一步,导 ...

  3. java scanner 回车_Java Scanner类用法及nextLine()产生的换行符问题实例分析

    本文实例讲述了Java Scanner类用法及nextLine()产生的换行符问题.分享给大家供大家参考,具体如下: 分析理解:Scanner sc = new Scanner(System.in); ...

  4. JAVA Scanner 类用法小结

    JAVA Scanner 类用法小结 1.Scanner是java中的一个类,可使用这个类创建一个对象,进行输入操作. Scanner reader = new Scanner(System.in): ...

  5. java scanner字符串_Java Scanner toString()用法及代码示例

    java.util.Scanner类的toString()方法返回此Scanner的字符串表示形式.未指定确切的格式. 用法: public String toString() 返回值:此函数返回此扫 ...

  6. java 清空scanner_Java Scanner reset()用法及代码示例

    java.util.Scanner类的reset()方法将重置此扫描器.重置扫描器时,它会丢弃所有可能由useDelimiter(java.util.regex.Pattern),useLocale( ...

  7. java scanner怎么用_Java Scanner delimiter()用法及代码示例

    java.util.Scanner类的delimiter()方法返回此Scanner当前用于匹配定界符的Pattern. 用法: public Pattern delimiter() 返回值:该函数返 ...

  8. echo 多行_Java中Scanner的用法:单行多行输入

    -NO.2- Java的Scanner用法,主要用于算法笔试时的控制台输入,平时写程序一般不用Scanner,线上笔试的时候,各大公司热衷于Scanner输入.用LeetCode刷题也不会用到,结果多 ...

  9. Scanner基本用法及其实例

    public class Demo1 {public static void main(String[] args) {// TODO 自动生成的方法存根Scanner scanner = new S ...

最新文章

  1. 重磅 | 最全PPT实录!英伟达发布可编程AI推理加速器TensorRT
  2. Linux下的软件安装方法介绍
  3. thinkPHP学习笔记(2)
  4. 使用coreData
  5. 工作流实战_10_flowable 流程实例的删除
  6. edu汇编语言——实训课程
  7. 《深入理解OSGi:Equinox原理、应用与最佳实践》笔记_1_运行最简单的bundlehelloworld...
  8. 石川:未知风险,错误定价,还是数据迁就?
  9. Android三横变叉动画,90%的孩子会写错的笔顺,动画演示来一波!一看就会!
  10. 文件服务器 标签,别再「新建文件夹」了,这个标签管理器可以让你的硬盘更整洁...
  11. android开发学习-日经常使用到的好东西-经常使用技巧分享
  12. PDA用ActiveSync同步上网 方法
  13. Tensorrt7踩坑记录
  14. AE常用快捷键及最常用功能说明
  15. android外汇软件开发,外汇ea回测预装基于Android9.0深度定制的操作系统
  16. 怎样用计算机筛选,教您Excel中筛选功能怎么用
  17. java pack unpack_pack/unpack函数与二进制
  18. python培训班-千锋教育Python培训-坚持高品质全程面授Python培训机构
  19. php中switch语句的理解,php中switch语句的使用详解
  20. “诸神之眼”——Nmap端口扫描工具使用小手册

热门文章

  1. 2022.12四级真题第1套听力原文(带中文翻译)共8页
  2. 真实版《华尔街之狼》
  3. linux第三方软件安装目录
  4. 信息技术计算机的飞速发展,飞速发展的信息技术
  5. html百度地图导航起点默认定位位置,关于javascript:百度地图定位和导航
  6. Go Hack 17:Killy 日记
  7. 4WE10D50型力士乐液压阀规格
  8. 万物皆可变 Wi-Fi ?研究人员发现新型网络攻击技术
  9. 拓扑排序——AOV网
  10. 连网线DNS服务器没检测到有响应,DNS服务器未检测到响应怎么办?