Java Scanner类详解与示例

需积分: 1 0 下载量 97 浏览量 更新于2024-09-14 收藏 35KB DOC 举报
"这篇内容是关于Java中的`Scanner`类的使用总结,旨在帮助学习Java的人更好地理解如何操作和读取输入数据。" 在Java编程中,`Scanner`类是`java.util`包的一部分,它提供了从各种源(如键盘、文件、字符串等)读取基本类型数据和字符串的能力。`Scanner`类主要通过构造函数初始化,有三种常见的构造方法: 1. `Scanner(File source)`:创建一个`Scanner`实例,用于读取指定文件。 2. `Scanner(InputStream source)`:基于给定的字节输入流创建`Scanner`。 3. `Scanner(String source)`:根据给定的字符串创建`Scanner`,这通常用于在程序内部处理字符串数据。 在处理输入时,`Scanner`和`BufferedReader`是两种常用的类,它们各有优势。`Scanner`更易于使用,适合简单的输入需求;而`BufferedReader`在处理大量文本时效率更高,适合复杂读取场景。 `Scanner`类中的一些重要方法包括: 1. `useDelimiter(Pattern pattern)`:更改分隔符,允许自定义规则来分割输入数据。默认的分隔符是空格。 2. `useDelimiter(String pattern)`:与上述方法类似,但接受字符串作为分隔符。 3. `hasNext()`:检查是否还有更多数据(分隔段)可读。 4. `hasNextInt()`:检查下一段数据是否为整数。 5. `nextInt()`:返回下一个整数。 6. `nextLine()`:获取下一行文本。 7. `hasNext(Pattern pattern)`:检查下一个数据是否符合给定的正则表达式模式。 在提供的示例代码中,有两个`ScannerTest`类的例子。第一个例子展示了如何自定义分隔符(本例中没有设置,因此使用默认的空格)。通过`hasNext(Pattern.compile("\\d\\.\\d"))`检查输入数据是否符合数字点数字的模式。如果匹配,就打印出来。第二个例子并未给出完整代码,但可以推测其可能演示了不同的`Scanner`用法或另一个输入处理场景。 通过这些方法,开发者可以根据需求灵活地处理用户输入或者文件数据,实现数据的读取和解析。在实际编程中,`Scanner`是一个非常实用的工具,尤其对于初学者来说,它简化了从控制台获取用户输入的过程。