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 类用法小结相关推荐

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

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

  2. Java Scanner类的常用方法及用法(很详细)

    Java Scanner类的方法及用法(很详细) Scanner类简介 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序.它是以前的StringToken ...

  3. java.nio.ByteBuffer用法小结

    转载自  java.nio.ByteBuffer用法小结 在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入 ...

  4. Java Scanner 类

    Java Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 下面是创建 Scanner 对象的基本语法: Scann ...

  5. java scanner类 构造器,Java Scanner类

    本文概述 Java的Scanner类可在java.util包中找到. Java提供了多种从键盘读取输入的方法, java.util.Scanner类就是其中之一. Java Scanner类使用默认为 ...

  6. java scanner类成员_Java Scanner类的使用示例

    1 Scanner的使用 JDK给我们提供了成千上万个类供我们直接使用,而Scanner就是这众多类里的一个最常用的一个类,既然它是一个类,我们使用它的方法和使用我们自己写的类的方法基本一致. 方法基 ...

  7. Java Scanner类的详细介绍(Java键盘输入)

    Java Scanner类的详细介绍(Java键盘输入) 一.Scanner类的简单使用 二.Scanner类的详细介绍 1.判断输入数据类型 2.next()与nextLine()的区别 3.求多个 ...

  8. Java之Scanner类用法

    1,首先导入类 import java.util.Scanner; 2,创建Scanner类的对象 Scanner input = new Scanner(System.in); 此代码允许用户从Sy ...

  9. java中Scanner类用法的详解

    一   java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 首先要导入包   import  java.util.Scanner; Sca ...

最新文章

  1. this - 想说爱你不容易
  2. 怎么检测不到我的音频_检测不到硬盘怎么办?
  3. 5000万用户数据泄露,大数据时代隐私保护困难重重
  4. kettle 数据转换
  5. JAVA 注解的基本原理
  6. JAVA类的构造方法
  7. 计算机二级和英语四六级是同一个账号吗,英语四六级考试和计算机考试的登录账号和密码一样吗?我好像混了,但是密码一直输不对,...
  8. java和mysql之间的时间日期类型传递
  9. python 数学公式显示_ipython jupyter notebook中显示图像和数学公式实例
  10. IS-IS详解(八)——深入探究IS-IS DIS选举机制
  11. 那些盒模型在IE6中的BUG们,工程狮的你可曾遇到过?
  12. 纳韦斯托克斯方程的推导_这5个改变世界的方程,跟你想的不一样!
  13. Android抓包工具——Fiddler
  14. esxi安装威联通_威联通折腾篇三:Virtualization Station 安装虚拟机
  15. 【开发环境准备】更新板载ESP8285固件
  16. html遮罩层样式,遮罩层样式
  17. 独立键盘检测,矩阵键盘检测
  18. fedora如何下载软件
  19. 武汉市洪山区高新技术企业认定奖励标准及申请材料、条件、要求
  20. [codeforces366C]Dima and Salad

热门文章

  1. signature=0e936ad5c99bd8d603e71fa74e787bee,JavaScript 的 BASE64 算法 实现 完美解决中文乱码...
  2. Java、JSP实验室预约管理系统
  3. 【map】高德地图点聚合—按索引聚合
  4. android 取消蓝牙配对框 实现自动配对 输入PIN码
  5. mysql的乐观锁,悲观锁(共享锁,排斥锁)
  6. 用酒精,湿巾,擦笔记本电脑/键盘,然后触摸板就不能用了?什么情况?
  7. ADF4350调试记录及频点锁定
  8. Fiddler is trying to download some required files to continue with the installation之解决方法
  9. C++中的FILL和MEMSET(zzl) 的区分
  10. C语言——PAT 乙级(1002.读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。)