Scanner的用法(扫描器深入)
这有一个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的用法(扫描器深入)相关推荐
- Java中Scanner详细用法
一.Scanner 对象 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入.java.util.Scanner 是Java5的新特征, ...
- Scanner的用法强化
Scanner的用法强化 Scanner类的功能 可以接收键盘的输入 实现人机交互 使用Scanner的步骤 导入Scanner 获得一个对象(我们操作的数据英雄,它有自己的密技) 放技能 第一步,导 ...
- java scanner 回车_Java Scanner类用法及nextLine()产生的换行符问题实例分析
本文实例讲述了Java Scanner类用法及nextLine()产生的换行符问题.分享给大家供大家参考,具体如下: 分析理解:Scanner sc = new Scanner(System.in); ...
- JAVA Scanner 类用法小结
JAVA Scanner 类用法小结 1.Scanner是java中的一个类,可使用这个类创建一个对象,进行输入操作. Scanner reader = new Scanner(System.in): ...
- java scanner字符串_Java Scanner toString()用法及代码示例
java.util.Scanner类的toString()方法返回此Scanner的字符串表示形式.未指定确切的格式. 用法: public String toString() 返回值:此函数返回此扫 ...
- java 清空scanner_Java Scanner reset()用法及代码示例
java.util.Scanner类的reset()方法将重置此扫描器.重置扫描器时,它会丢弃所有可能由useDelimiter(java.util.regex.Pattern),useLocale( ...
- java scanner怎么用_Java Scanner delimiter()用法及代码示例
java.util.Scanner类的delimiter()方法返回此Scanner当前用于匹配定界符的Pattern. 用法: public Pattern delimiter() 返回值:该函数返 ...
- echo 多行_Java中Scanner的用法:单行多行输入
-NO.2- Java的Scanner用法,主要用于算法笔试时的控制台输入,平时写程序一般不用Scanner,线上笔试的时候,各大公司热衷于Scanner输入.用LeetCode刷题也不会用到,结果多 ...
- Scanner基本用法及其实例
public class Demo1 {public static void main(String[] args) {// TODO 自动生成的方法存根Scanner scanner = new S ...
最新文章
- 重磅 | 最全PPT实录!英伟达发布可编程AI推理加速器TensorRT
- Linux下的软件安装方法介绍
- thinkPHP学习笔记(2)
- 使用coreData
- 工作流实战_10_flowable 流程实例的删除
- edu汇编语言——实训课程
- 《深入理解OSGi:Equinox原理、应用与最佳实践》笔记_1_运行最简单的bundlehelloworld...
- 石川:未知风险,错误定价,还是数据迁就?
- Android三横变叉动画,90%的孩子会写错的笔顺,动画演示来一波!一看就会!
- 文件服务器 标签,别再「新建文件夹」了,这个标签管理器可以让你的硬盘更整洁...
- android开发学习-日经常使用到的好东西-经常使用技巧分享
- PDA用ActiveSync同步上网 方法
- Tensorrt7踩坑记录
- AE常用快捷键及最常用功能说明
- android外汇软件开发,外汇ea回测预装基于Android9.0深度定制的操作系统
- 怎样用计算机筛选,教您Excel中筛选功能怎么用
- java pack unpack_pack/unpack函数与二进制
- python培训班-千锋教育Python培训-坚持高品质全程面授Python培训机构
- php中switch语句的理解,php中switch语句的使用详解
- “诸神之眼”——Nmap端口扫描工具使用小手册