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

Scanner类简介

Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前的StringTokenizer和Matcher类之间的某种结合。由于任何数据都必须通过同一模式的捕获组检索或通过使用一个索引来检索文本的各个部分。于是可以结合使用正则表达式和从输入流中检索特定类型数据项的方法。这样,除了能使用正则表达式之外,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析。借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器。

Scanner类的常用方法1

其实上图的意思就是,比如:nextlnt():只读取int值,就是只能读取整数类型的数据,如果输入了非整型的数据(浮点型字符串等)就会报错。

nextFloat()、nextDouble()这些也是以此类推,只能读取符合该类型的数据。

此处重点讲一下next()和nextLine()的区别

next():只读取输入直到空格。它不能读两个由空格或符号隔开的单词。此外,next()在读取输入后将光标放在同一行中。(next()只读空格之前的数据,并且光标指向本行)

nextLine():读取输入,包括单词之间的空格和除回车以外的所有符号(即。它读到行尾)。读取输入后,nextLine()将光标定位在下一行。

代码演示: public class Text {public static void main(String []args) {Scanner input = new Scanner(System.in);System.out.println("请输入一个字符串(中间能加空格或符号)");String a = input.nextLine();System.out.println("请输入一个字符串(中间不能加空格或符号)");String b = input.next();System.out.println("请输入一个整数");int c;c = input.nextInt();System.out.println("请输入一个double类型的小数");double d = input.nextDouble();System.out.println("请输入一个float类型的小数");float f = input.nextFloat();System.out.println("按顺序输出abcdf的值:");System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);System.out.println(f);}}

运行结果: 请输入一个字符串(中间能加空格或符号)我爱祖国!请输入一个字符串(中间不能加空格或符号)ILoveChina请输入一个整数520请输入一个double类型的小数12.26e3请输入一个float类型的小数3.1415926按顺序输出abcdf的值:我爱祖国!ILoveChina52012260.03.1415925

Scanner类的常用方法2

代码演示: public class inputInformation {public static void main(String args[]) {Scanner scan = new Scanner(System.in);//构造Scanner类的对象scan,接收从控制台输入的信息System.out.println("请输入你的姓名");String name = scan.nextLine();//接收一个字符串,可以加除Enter以外的所有符号,包括空格和TabSystem.out.println("请输入你的ID");String ID ;while(scan.hasNextLine()) {// hasNextLine()方法判断当前是否有输入,当键盘有输入后执行循环if(scan.hasNextInt()) {// 判断输入的值是否为整数类型,当为整数类型时执行循环ID = scan.nextLine();System.out.println("你输入的姓名为:"+name);System.out.println("你输入的ID为:"+ID);break;}else {System.out.println("请输入数字哦!");ID = scan.nextLine();continue;}}}}

运行结果如下: 请输入你的姓名西地那非请输入你的IDq764323221请输入数字哦!764323221

java怎么定义scanner_Java Scanner类的常用方法及用法(很详细)相关推荐

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

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

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

    一.Scanner类简介 Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序.它是以前的StringTokenizer和Matcher类之间的某种结合.由于 ...

  3. 详解Java多线程编程中LockSupport类的线程阻塞用法

    转载自  详解Java多线程编程中LockSupport类的线程阻塞用法 LockSupport类是Java6(JSR166-JUC)引入的一个类,提供了基本的线程同步原语.LockSupport实际 ...

  4. java 求整_Java Math类的常用方法,求整运算

    你知道Java Math类的常用方法求整运算应该如何实现吗?下面的文章要给大家介绍到的就是这个方面的内容,一起来了解了解吧. Math 类的求整方法有很多,详细说明如下所示: 下面的实例演示了 Mat ...

  5. java考前复习之Scanner 类

    创建 Scanner 对象的基本语法: Scanner name = new Scanner(System.in); 通过 Scanner 类的 next() 与 nextLine() 方法获取输入的 ...

  6. Java——(1)定义一个学生类Student,包含属性:姓名(String name)、年龄(int age) (2)定义Map集合,用Student对象作为key

    分析以下需求,并用代码实现: (1)定义一个学生类Student,包含属性:姓名(String name).年龄(int age) (2)定义Map集合,用Student对象作为key,用字符串(此表 ...

  7. java中scanner类的常见方法用法总结

    java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入. 首先要先创建一个Scanner对象. Scanner sc = new Scanner ...

  8. Java 枚举(enum) 详解7种常见的用法<详细>

    JDK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 大师兄我[大师兄]又加上自己的理解,来帮助各位理解一下 ...

  9. java类无法调用值,Kotlin无法调用到Java中定义的interface类的问题记录

    问题产生原因概述 一个kotlin类,调用一个Java类中的一个方法.引发了下面这个错误. 因为我在kotlin中调用了了java代码中定义的一个接口,然后就报错一个IllegalAccessErro ...

  10. java基础学习5---包装类及常用方法

    java中的数据类型 包装类与基本数据类型 java中提供了8中基本类型:6中数字类型(4个整数型,2个浮点型),1种字符类型,还有1种布尔类型. 整数: int .short.byte.long,初 ...

最新文章

  1. 设计模式之访问者模式、例子分析
  2. Prometheus — 核心概念
  3. void func(int n)C语言,C语言高手帮忙分析一下复杂的函数声明
  4. linux KVM win虚拟机磁盘扩容(qcow2)
  5. Java web 面试题
  6. TensorFlow(五)常用函数与基本操作
  7. python 安装虚拟环境virtualenv
  8. c语言动态双端栈的原理,数据结构(C语言版)例题(第三章:栈和队列)
  9. LeetCode 6 - ZigZag Conversion
  10. origin游戏服务器引擎
  11. mac版android sdk安装手机模拟器
  12. 明解C语言 【日】 柴田望洋 第十章 指针 代码清单和练习代码
  13. 服务器误删除虚拟机数据恢复成功
  14. CSU 1725 加尔鲁什·地狱咆哮对阵虚灵大盗拉法姆(dp)
  15. 广义相对论-学习记录7-第三章-张量分析与黎曼几何4
  16. miniGUI源码分析:初始化
  17. BIT计科小学期web前端开发lab1
  18. 成长型思维和固定型思维
  19. UPDATE STATISTICS
  20. Oracle 版本查看及版本号说明

热门文章

  1. Julia: PostgreSQL数据库.......
  2. 一个空格引发的Bug! ----CSV输出和CSV读入
  3. 阿里云原生资深专家李国强:云原生上云概述
  4. 新年礼物第二弹,热升华机械键盘免费抽
  5. 机器学习笔记(十):梯度下降 | 凌云时刻
  6. LC3 正式升级 Open Source Summit,分论坛主题活动精彩纷呈
  7. 【图像分割】基于matlab贝叶斯图像分割【含Matlab源码 1677期】
  8. 2021全国研究生数学建模竞赛C题思路
  9. 【书法字识别】基于matlab余弦形状相似度书法字识别【含Matlab源码 1356期】
  10. 【图像修复】基于matlab GUI中值+均值+维纳+最小平方图像恢复【含Matlab源码 838期】