Java Scanner 类



介绍

Java Scanner 类是一个简单的文本扫描器,可以使用正则表达式解析基本类型和字符串。以下是关于 Scanner 的重要要点:

  • Scanner 使用分隔符模式将其输入分解为标记,默认情况下匹配空格。

  • 扫描操作可能会阻塞以等待输入。

  • 如果不进行外部同步,Scanner 对于多线程使用是不安全的。

类声明

以下是 java.util.Scanner 类的声明:

public final class Scanner
   extends Object
   implements Iterator<String>

类构造函数

序号 构造函数及描述
1

Scanner(File source)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的文件中扫描生成值。

2

Scanner(File source, String charsetName)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的文件中扫描生成值。

3

Scanner(File source, Charset charset)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的文件中扫描生成值。

4

Scanner(InputStream source)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的输入流中扫描生成值。

5

Scanner(InputStream source, String charsetName)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的输入流中扫描生成值。

6

Scanner(InputStream source, Charset charset)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的输入流中扫描生成值。

7

Scanner(Readable source)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的源中扫描生成值。

8

Scanner(String source)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的源中扫描生成值。

9

Scanner(ReadableByteChannel source)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的通道中扫描生成值。

10

Scanner(ReadableByteChannel source, String charsetName)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的通道中扫描生成值。

11

Scanner(ReadableByteChannel source, Charset charset)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的通道中扫描生成值。

12

Scanner(Path source)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的文件中扫描生成值。

13

Scanner(Path source, String charsetName)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的文件中扫描生成值。

14

Scanner(Path source, Charset charset)

此构造函数创建一个新的 Scanner,该 Scanner 从指定的文件中扫描生成值。

类方法

序号 方法及描述
1 void close()

此方法关闭此扫描器。

2 Pattern delimiter()

此方法返回此 Scanner 当前用于匹配分隔符的 Pattern。

3 Stream<MatchResult> findAll​(String patString)

此方法返回与提供的模式字符串匹配的匹配结果流。

4 String findInLine(Pattern pattern)

此方法尝试查找指定模式的下一个匹配项,忽略分隔符。

5 String findWithinHorizon(Pattern pattern, int horizon)

此方法尝试查找指定模式的下一个匹配项。

6 boolean hasNext()

如果此扫描器的输入中还有另一个标记,则此方法返回 true。

7 boolean hasNextBigDecimal()

如果此扫描器的输入中的下一个标记可以使用 nextBigDecimal() 方法解释为 BigDecimal,则此方法返回 true。

8 boolean hasNextBigInteger()

如果此扫描器的输入中的下一个标记可以使用 nextBigInteger() 方法以默认基数解释为 BigInteger,则此方法返回 true。

9 boolean hasNextBoolean()

如果此扫描器的输入中的下一个标记可以使用从字符串“true|false”创建的不区分大小写的模式解释为布尔值,则此方法返回 true。

10 boolean hasNextByte()

如果此扫描器的输入中的下一个标记可以使用 nextByte() 方法以默认基数解释为字节值,则此方法返回 true。

11 boolean hasNextDouble()

如果此扫描器的输入中的下一个标记可以使用 nextDouble() 方法解释为双精度值,则此方法返回 true。

12 boolean hasNextFloat()

此方法返回 true,如果此扫描器的输入中的下一个标记可以使用 nextFloat() 方法解释为浮点值。

13 boolean hasNextInt()

如果此扫描器的输入中的下一个标记可以使用 nextInt() 方法以默认基数解释为整数值,则此方法返回 true。

14 boolean hasNextLine()

如果此扫描器的输入中还有另一行,则此方法返回 true。

15 boolean hasNextLong()

如果此扫描器的输入中的下一个标记可以使用 nextLong() 方法以默认基数解释为长整数值,则此方法返回 true。

16 boolean hasNextShort()

如果此扫描器的输入中的下一个标记可以使用 nextShort() 方法以默认基数解释为短整数值,则此方法返回 true。

17 IOException ioException()

此方法返回此 Scanner 的底层 Readable 最近抛出的 IOException。

18 Locale locale()

此方法返回此扫描器的区域设置。

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()

此方法将输入的下一个标记扫描为整数。

28 String nextLine()

此方法将此扫描器推进到当前行的下一行,并返回跳过的输入。

29 long nextLong()

此方法将输入的下一个标记扫描为长整数。

30 short nextShort()

此方法将输入的下一个标记扫描为短整数。

31 int radix()

此方法返回此扫描器的默认基数。

32 void remove()

此 Iterator 实现不支持删除操作。

33 Scanner reset()

此方法重置此扫描器。

34 Scanner skip(Pattern pattern)

此方法跳过与指定模式匹配的输入,忽略分隔符。

35 Stream<String> tokens()

返回此扫描器中分隔符分隔的标记的流。

36 String toString()

此方法返回此 Scanner 的字符串表示形式。

37 Scanner useDelimiter(Pattern pattern)

此方法将此扫描器的分隔符模式设置为指定的模式。

38 Scanner useLocale(Locale locale)

此方法将此扫描器的区域设置设置为指定的区域设置。

39 Scanner useRadix(int radix)

此方法将此扫描器的默认基数设置为指定的基数。

继承的方法

此类继承自以下类的方法:

  • java.util.Object

使用 Scanner 类读取控制台行示例

以下示例演示了如何使用 Java Scanner nextLine() 从控制台读取一行以及如何使用 close() 方法关闭扫描器。我们使用给定字符串创建了一个扫描器对象。然后,我们使用 nextLine() 方法打印了该字符串,然后使用 close() 方法关闭了扫描器。

package com.tutorialspoint;

import java.util.Scanner;

public class ScannerDemo {
   public static void main(String[] args) {

      String s = "Hello World! 3 + 3.0 = 6";

      // create a new scanner with the specified String Object
      Scanner scanner = new Scanner(s);

      // print the next line of the string
      System.out.println(scanner.nextLine());

      // close the scanner
      System.out.println("Closing Scanner...");
      scanner.close();
      System.out.println("Scanner Closed.");
   }
}

输出

让我们编译并运行以上程序,这将产生以下结果:

Hello World! 3 + 3.0 = 6
Closing Scanner...
Scanner Closed.
广告