JAVA Scanner 类用法小结
JAVA Scanner 类用法小结
1.Scanner是java中的一个类,可使用这个类创建一个对象,进行输入操作。
Scanner reader = new Scanner(System.in);
然后可以使用reader对象调用一系列函数,判断或读取用户输入的各种用户类型。
2.next与nextLine函数区别
Scanner in1 = new Scanner(System.in); System.out.println("What is your name? ");String name1 = in1.nextLine();//试图输入带空格的字符串System.out.println("您的姓名是" + name1);Scanner in2 = new Scanner(System.in);System.out.println("What is your name? ");String name2 = in2.next();//试图输入带空格的字符串System.out.println("您的姓名是" + name2);
两个函数都可以用来输入字符串,但结果却大相径庭,本质上的不同是,nextLine函数可以接收带有空格的字符串,到回车停止。而next函数到空格就停止接收。
具体运行结果如下,可以看到nextLine函数接收到了kai kai,而next函数只接收到了kai,到空格就已经停止。
3.canner类一些其他函数的用法
Scanner scan = new Scanner(System.in);int i = 0;float f = 0.0f;System.out.println("输入整数: ");if(scan.hasNextInt()) {i = scan.nextInt();System.out.println("整数数据: " + i);}else {System.out.println("输入的数不是整数!");}if(scan.hasNextFloat()) {f = scan.nextFloat();System.out.println("小数数据: " + f);}else {System.out.println("输入的数不是小数!");}
hasNextInt函数用来判断输入的数据是否为整型,若输入为整型,返回true,否则返回false。同理还有其他函数用来判断不同类型,例如,hasNextDouble,hasNextByte,hasNextLong等等。
nextInt函数用来输入一个整型数据,同理还有其他类型,例如,nextDouble,nextByte,nextLong,nextLine等等。
下面是正常输入的运行结果
输入整型数据10,显示10,输入浮点数10.2,显示10.2
下面是非正常输入的运行结果
在第一次输入为10.2浮点型时,程序只允许输入一次,这是因为第一次输入的10.2浮点型并没有被nextInt函数接收,而且存在在缓冲区里,直接被下一个if语句的hasNextFloat函数判定,被nextFloat函数接收。
4.清空缓存区的方法(next函数的妙用)
为了改良上一段程序的不足,有两种方法改进。
(1)利用next函数接收缓存区已经输入的浮点型数据(清空当前缓冲区)
具体解决代码如下:
Scanner scan = new Scanner(System.in);int i = 0;float f = 0.0f;System.out.println("输入整数: ");if(scan.hasNextInt()) {i = scan.nextInt();System.out.println("整数数据: " + i);}else {scan.next();System.out.println("输入的数不是整数!");}if(scan.hasNextFloat()) {f = scan.nextFloat();System.out.println("小数数据: " + f);}else {System.out.println("输入的数不是小数!");}
在输入的数字不是整数之前使用
scan.next();
从而达到吸收当前缓存区的作用。
更改后运行结果如下
(2)直接使用Scanner创建两个对象
实现代码如下
Scanner s1 = new Scanner(System.in);int i = 0;float f = 0.0f;System.out.println("输入整数: ");if(s1.hasNextInt()) {i = s1.nextInt();System.out.println("整数数据: " + i);}else {//scan.next();System.out.println("输入的数不是整数!");}Scanner s2 = new Scanner(System.in);if(s2.hasNextFloat()) {f = s2.nextFloat();System.out.println("小数数据: " + f);}else {System.out.println("输入的数不是小数!");}
运行结果如下
JAVA Scanner 类用法小结相关推荐
- java scanner 回车_Java Scanner类用法及nextLine()产生的换行符问题实例分析
本文实例讲述了Java Scanner类用法及nextLine()产生的换行符问题.分享给大家供大家参考,具体如下: 分析理解:Scanner sc = new Scanner(System.in); ...
- Java Scanner类的常用方法及用法(很详细)
Java Scanner类的方法及用法(很详细) Scanner类简介 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序.它是以前的StringToken ...
- java.nio.ByteBuffer用法小结
转载自 java.nio.ByteBuffer用法小结 在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入 ...
- Java Scanner 类
Java Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 下面是创建 Scanner 对象的基本语法: Scann ...
- java scanner类 构造器,Java Scanner类
本文概述 Java的Scanner类可在java.util包中找到. Java提供了多种从键盘读取输入的方法, java.util.Scanner类就是其中之一. Java Scanner类使用默认为 ...
- java scanner类成员_Java Scanner类的使用示例
1 Scanner的使用 JDK给我们提供了成千上万个类供我们直接使用,而Scanner就是这众多类里的一个最常用的一个类,既然它是一个类,我们使用它的方法和使用我们自己写的类的方法基本一致. 方法基 ...
- Java Scanner类的详细介绍(Java键盘输入)
Java Scanner类的详细介绍(Java键盘输入) 一.Scanner类的简单使用 二.Scanner类的详细介绍 1.判断输入数据类型 2.next()与nextLine()的区别 3.求多个 ...
- Java之Scanner类用法
1,首先导入类 import java.util.Scanner; 2,创建Scanner类的对象 Scanner input = new Scanner(System.in); 此代码允许用户从Sy ...
- java中Scanner类用法的详解
一 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 首先要导入包 import java.util.Scanner; Sca ...
最新文章
- this - 想说爱你不容易
- 怎么检测不到我的音频_检测不到硬盘怎么办?
- 5000万用户数据泄露,大数据时代隐私保护困难重重
- kettle 数据转换
- JAVA 注解的基本原理
- JAVA类的构造方法
- 计算机二级和英语四六级是同一个账号吗,英语四六级考试和计算机考试的登录账号和密码一样吗?我好像混了,但是密码一直输不对,...
- java和mysql之间的时间日期类型传递
- python 数学公式显示_ipython jupyter notebook中显示图像和数学公式实例
- IS-IS详解(八)——深入探究IS-IS DIS选举机制
- 那些盒模型在IE6中的BUG们,工程狮的你可曾遇到过?
- 纳韦斯托克斯方程的推导_这5个改变世界的方程,跟你想的不一样!
- Android抓包工具——Fiddler
- esxi安装威联通_威联通折腾篇三:Virtualization Station 安装虚拟机
- 【开发环境准备】更新板载ESP8285固件
- html遮罩层样式,遮罩层样式
- 独立键盘检测,矩阵键盘检测
- fedora如何下载软件
- 武汉市洪山区高新技术企业认定奖励标准及申请材料、条件、要求
- [codeforces366C]Dima and Salad
热门文章
- signature=0e936ad5c99bd8d603e71fa74e787bee,JavaScript 的 BASE64 算法 实现 完美解决中文乱码...
- Java、JSP实验室预约管理系统
- 【map】高德地图点聚合—按索引聚合
- android 取消蓝牙配对框 实现自动配对 输入PIN码
- mysql的乐观锁,悲观锁(共享锁,排斥锁)
- 用酒精,湿巾,擦笔记本电脑/键盘,然后触摸板就不能用了?什么情况?
- ADF4350调试记录及频点锁定
- Fiddler is trying to download some required files to continue with the installation之解决方法
- C++中的FILL和MEMSET(zzl) 的区分
- C语言——PAT 乙级(1002.读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。)