- Java.util 包类
- Java.util - 首页
- Java.util - ArrayDeque
- Java.util - ArrayList
- Java.util - Arrays
- Java.util - BitSet
- Java.util - Calendar
- Java.util - Collections
- Java.util - Currency
- Java.util - Date
- Java.util - Dictionary
- Java.util - EnumMap
- Java.util - EnumSet
- Java.util - Formatter
- Java.util - GregorianCalendar
- Java.util - HashMap
- Java.util - HashSet
- Java.util - Hashtable
- Java.util - IdentityHashMap
- Java.util - LinkedHashMap
- Java.util - LinkedHashSet
- Java.util - LinkedList
- Java.util - ListResourceBundle
- Java.util - Locale
- Java.util - Observable
- Java.util - PriorityQueue
- Java.util - Properties
- Java.util - PropertyPermission
- Java.util - PropertyResourceBundle
- Java.util - Random
- Java.util - ResourceBundle
- Java.util - ResourceBundle.Control
- Java.util - Scanner
- Java.util - ServiceLoader
- Java.util - SimpleTimeZone
- Java.util - Stack
- Java.util - StringTokenizer
- Java.util - Timer
- Java.util - TimerTask
- Java.util - TimeZone
- Java.util - TreeMap
- Java.util - TreeSet
- Java.util - UUID
- Java.util - Vector
- Java.util - WeakHashMap
- Java.util 包其他
- Java.util - 接口
- Java.util - 异常
- Java.util - 枚举
- Java.util 有用资源
- Java.util - 有用资源
- Java.util - 讨论
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.