本文概述

Java的Scanner类可在java.util包中找到。 Java提供了多种从键盘读取输入的方法, java.util.Scanner类就是其中之一。

Java Scanner类使用默认为空格的定界符将输入分为令牌。它提供了许多读取和解析各种原始值的方法。

Java Scanner类广泛用于使用正则表达式解析文本以获取字符串和原始类型。这是在Java中获取输入的最简单方法。借助Java中的Scanner, 我们可以从用户那里获取基本类型的输入, 例如int, long, double, byte, float, short等。

Java Scanner类扩展了Object类, 并实现了Iterator和Closeable接口。

Java Scanner类提供nextXXX()方法以返回值的类型, 例如nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean()等。要从扫描仪获取单个字符, 可以调用next()。charAt(0)方法, 该方法返回单个字符。

Java扫描器类声明

public final class Scanner

extends Object

implements Iterator

如何获取Java扫描仪

为了获得从用户读取输入的Java Scanner实例, 我们需要在Scanner类的构造函数中传递输入流(System.in)。例如:

Scanner in = new Scanner(System.in);

要获取解析字符串的Java Scanner实例, 我们需要在Scanner类的构造函数中传递字符串。例如:

Scanner in = new Scanner("Hello srcmini");

Java扫描器类构造函数

序号

建设者

描述

1)

Scanner(File source)

它构造一个新的扫描仪, 该扫描仪生成从指定文件扫描的值。

2)

Scanner(File source, String charsetName)

它构造一个新的扫描仪, 该扫描仪生成从指定文件扫描的值。

3)

Scanner(InputStream source)

它构造一个新的Scanner, 该扫描器生成从指定输入流中扫描的值。

4)

Scanner(InputStream source, String charsetName)

它构造一个新的Scanner, 该扫描器生成从指定输入流中扫描的值。

5)

Scanner(Readable source)

它构造一个新的扫描仪, 该扫描仪生成从指定来源扫描的值。

6)

Scanner(String source)

它构造一个新的Scanner, 该扫描器生成从指定字符串扫描的值。

7)

Scanner(ReadableByteChannel source)

它构造一个新的扫描仪, 该扫描仪生成从指定通道扫描的值。

8)

Scanner(ReadableByteChannel source, String charsetName)

它构造一个新的扫描仪, 该扫描仪生成从指定通道扫描的值。

9)

Scanner(Path source)

它构造一个新的扫描仪, 该扫描仪生成从指定文件扫描的值。

10)

Scanner(Path source, String charsetName)

它构造一个新的扫描仪, 该扫描仪生成从指定文件扫描的值。

Java Scanner类方法

以下是扫描仪方法的列表:

序号

编辑并输入

方法

描述

1)

void

close()

用于关闭该扫描仪。

2)

pattern

delimiter()

它用于获取Scanner类当前用于匹配定界符的Pattern。

3)

Stream

findAll()

它用于查找与提供的模式字符串匹配的匹配结果流。

4)

String

findInLine()

它用于查找由指定字符串构造的模式的下一次出现, 而忽略定界符。

5)

string

findWithinHorizon()

它用于查找由指定字符串构造的模式的下一次出现, 而忽略定界符。

6)

boolean

hasNext()

如果此扫描程序的输入中包含另一个令牌, 则返回true。

7)

boolean

hasNextBigDecimal()

它用于检查是否可以使用nextBigDecimal()方法将此扫描程序输入中的下一个标记解释为BigDecimal。

8)

boolean

hasNextBigInteger()

它用于检查是否可以使用nextBigDecimal()方法将此扫描程序输入中的下一个标记解释为BigDecimal。

9)

boolean

hasNextBoolean()

它用于检查是否可以使用nextBoolean()方法将此扫描程序输入中的下一个标记解释为布尔值。

10)

boolean

hasNextByte()

它用于检查是否可以使用nextBigDecimal()方法将此扫描程序输入中的下一个标记解释为Byte。

11)

boolean

hasNextDouble()

它用于检查是否可以使用nextByte()方法将此扫描程序输入中的下一个标记解释为BigDecimal。

12)

boolean

hasNextFloat()

它用于检查是否可以使用nextFloat()方法将此扫描程序输入中的下一个标记解释为Float。

13)

boolean

hasNextInt()

它用于检查使用nextInt()方法是否可以将此扫描器输入中的下一个标记解释为int。

14)

boolean

hasNextLine()

用于检查此扫描仪输入中是否还有另一行。

15)

boolean

hasNextLong()

它用于检查使用nextLong()方法是否可以将此扫描程序输入中的下一个标记解释为Long。

16)

boolean

hasNextShort()

它用于检查是否可以使用nextShort()方法将此扫描程序输入中的下一个标记解释为Short。

17)

IOException

ioException()

它用于获取此Scanner的可读性最后抛出的IOException。

18)

Locale

locale()

它用于获取Scanner类的语言环境。

19)

MatchResult

match()

用于获取此扫描仪上次扫描操作的匹配结果。

20)

String

next()

它用于从正在使用的扫描仪中获取下一个完整令牌。

21)

BigDecimal

nextBigDecimal()

它将输入的下一个令牌扫描为BigDecimal。

22)

BigInteger

nextBigInteger()

它将输入的下一个标记扫描为BigInteger。

23)

boolean

nextBoolean()

它将输入的下一个标记扫描为布尔值并返回该值。

24)

byte

nextByte()

它将输入的下一个令牌扫描为一个字节。

25)

double

nextDouble()

它将输入的下一个标记扫描为双精度。

26)

float

nextFloat()

它以浮点形式扫描输入的下一个标记。

27)

int

nextInt()

它将输入的下一个标记扫描为Int。

28)

String

nextLine()

它用于获取跳过了Scanner对象的输入字符串。

29)

long

nextLong()

它扫描输入的下一个令牌很长。

30)

short

nextShort()

它将输入的下一个令牌扫描为short。

31)

int

radix()

它用于获取扫描仪使用的默认基数。

32)

void

remove()

当Iterator的此实现不支持remove操作时, 将使用它。

33)

Scanner

reset()

用于重置正在使用的扫描仪。

34)

Scanner

skip()

跳过与指定模式匹配的输入, 忽略定界符

35)

Stream

tokens()

它用于从正在使用的Scanner对象中获取由定界符分隔的标记流。

36)

String

toString()

它用于获取Scanner使用的字符串表示形式。

37)

Scanner

useDelimiter()

用于将正在使用的扫描仪的定界图案设置为指定的图案。

38)

Scanner

useLocale()

它用于将此扫描程序的语言环境对象设置为指定的语言环境。

39)

Scanner

useRadix()

用于将使用中的扫描仪的默认基数设置为指定基数。

例子1

让我们看一个简单的Java扫描仪示例, 我们从用户那里获得单个输入。在这里, 我们通过in.nextLine()方法请求一个字符串。

import java.util.*;

public class ScannerExample {

public static void main(String args[]){

Scanner in = new Scanner(System.in);

System.out.print("Enter your name: ");

String name = in.nextLine();

System.out.println("Name is: " + name);

in.close();

}

}

输出:

Enter your name: sonoo jaiswal

Name is: sonoo jaiswal

例子2

import java.util.*;

public class ScannerClassExample1 {

public static void main(String args[]){

String s = "Hello, This is srcmini.";

//Create scanner Object and pass string in it

Scanner scan = new Scanner(s);

//Check if the scanner has a token

System.out.println("Boolean Result: " + scan.hasNext());

//Print the string

System.out.println("String: " +scan.nextLine());

scan.close();

System.out.println("--------Enter Your Details-------- ");

Scanner in = new Scanner(System.in);

System.out.print("Enter your name: ");

String name = in.next();

System.out.println("Name: " + name);

System.out.print("Enter your age: ");

int i = in.nextInt();

System.out.println("Age: " + i);

System.out.print("Enter your salary: ");

double d = in.nextDouble();

System.out.println("Salary: " + d);

in.close();

}

}

输出:

Boolean Result: true

String: Hello, This is srcmini.

-------Enter Your Details---------

Enter your name: Abhishek

Name: Abhishek

Enter your age: 23

Age: 23

Enter your salary: 25000

Salary: 25000.0

例子3

import java.util.*;

public class ScannerClassExample2 {

public static void main(String args[]){

String str = "Hello/This is srcmini/My name is Abhishek.";

//Create scanner with the specified String Object

Scanner scanner = new Scanner(str);

System.out.println("Boolean Result: "+scanner.hasNextBoolean());

//Change the delimiter of this scanner

scanner.useDelimiter("/");

//Printing the tokenized Strings

System.out.println("---Tokenizes String---");

while(scanner.hasNext()){

System.out.println(scanner.next());

}

//Display the new delimiter

System.out.println("Delimiter used: " +scanner.delimiter());

scanner.close();

}

}

输出:

Boolean Result: false

---Tokenizes String---

Hello

This is srcmini

My name is Abhishek.

Delimiter used: /

java scanner类 构造器,Java Scanner类相关推荐

  1. Java对象的创建过程:类的初始化与实例化

    一.Java对象创建时机 我们知道,一个对象在可以被使用之前必须要被正确地实例化.在Java代码中,有很多行为可以引起对象的创建,最为直观的一种就是使用new关键字来调用一个类的构造函数显式地创建对象 ...

  2. Android开发之Java基础JVM和ClassLoader以及类加机制面试题

    在面试中被问到Java相关的东西非常多: 首先说下Java内存模型: 主要由: 程序计数器,Java虚拟机栈,本地方法栈=>被线程私有 方法区 堆组成=>被线程共有 Java类加载机制Cl ...

  3. 深入理解Java对象的创建过程:类的初始化与实例化

    摘要: 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.在实例化一个对象时,JVM首先会检查相关类型是否已经加载并初始化,如果没有,则JVM立即进行加载并调用类 ...

  4. Java注解与反射系列——Class类day1-3

    Java注解与反射系列--Class类 Class类 常用方法 哪些类型有Class对象? 类的加载过程 类的加载 链接 初始化 什么时候会发送类的初始化 类的主动引用 类的被动引用 获取Class实 ...

  5. java中具有继承关系的类及其对象初始化顺序

    先说结论 对于具有继承关系的类,它们的类和对象构造顺序为:父类的类构造器() -> 子类的类构造器() -> 父类成员变量的赋值和实例代码块 -> 父类的构造函数 -> 子类成 ...

  6. java scanner类 构造器_java – 不能使用Scanner类,构造函数未定义,方法未定义

    问题是你还要声明一个名为Scanner的类.这意味着当你然后声明一个Scanner类型的变量并尝试调用构造函数时,编译器会认为你在谈论你的类.只需将您自己的类更改为其他类(例如Test): impor ...

  7. Java基础学习(11)---Java注解和反射

    文章目录 一.注解概述 二.内置注解 三.元注解 四.自定义注解 五.反射概述 ★ 静态语言 VS 动态语言 反射机制 Java反射机制研究及应用 Java反射优点和缺点 六.Class类 获取Cla ...

  8. java scanner类int_Java之 Scanner类

    1. Scanner 类 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入,并通过 Scanner 类的 next() 与 nextLin ...

  9. java中常用API、Scanner类、匿名对象、Random类、ArrayList类、对象数组

    java中常用API: API:Application Programming Interface,应用程序编程接口.Java API是JDK中提供给我们使用的类的说明文档.这些类将底层的代码实现封装 ...

最新文章

  1. OpenMediaVault Redmine 安装
  2. c#后台alert出来变乱码问题解决
  3. numpy.random随机数模块常用函数总结
  4. LeetCode刷题(27)
  5. jQuery - 通过文本描述设置选择控件的选定值
  6. 语义slam_【语义SLAM】MIT 新开源语义VIOSLAM框架 kimera
  7. 信息化基础建设 总体结构
  8. Qt + 运动控制 (固高运动控制卡)【2】运动控制卡初始化和关闭
  9. AppScan安装教程
  10. 贝叶斯网络经典matlab源代码解析
  11. css3炫酷环形背景动画
  12. 【Unity使用UGUI实现王者荣耀UI界面(四)】游戏开始界面
  13. [音乐]阿桑的《叶子》
  14. 免费无需魔法会语音聊天的ChatGPT
  15. 利用移动硬盘+路由器搭建局域网云存储
  16. 程序员电脑组装_解密中国互联网企业创始人,程序员是如何打下半壁江山的?...
  17. Flink清洗日志服务SLS的数据并求ACUPCU
  18. 训练集、验证集和测试集这三个名词的区别
  19. mysql 双机热备 原理,MySQL双机热备份的配置及原理
  20. NBMA和BMA的交换方式

热门文章

  1. 通常所说的pc机是指微型计算机,2017年自考计算机应用基础精选习题及答案(1)
  2. php网页正文提取,通用网页正文抓取工具_任意网页正文提取API
  3. mysql flask-login_Flask框架通过Flask_login实现用户登录功能示例
  4. Java 设计模式之原型模式
  5. 鸿蒙ACE框架-使用JS调用C++(1)
  6. 特征筛选2——皮尔逊相关系数筛选(单变量筛选)
  7. Python使用字典get()方法TypeError: get() takes no keyword arguments
  8. Pandas 生成随机整数序列
  9. python多线程飞速写入文件
  10. java数据结构基础名词解释