7.1.2 使用Scanner获取键盘输入
7.1.2 使用Scanner获取键盘输入
使用Scanner类可以很方便地获取用户的键盘输入, Scanner是一个基于正则表达式的文本扫描器,它可以从文件、输入流、字符串中解析出基本类型值和字符串值。
Scanner类提供了多个构造器,不同的构造器可以接收文件、输入流、字符串作为数据源,用于从文件、输入流、字符串中解析数据。
Scanner主要方法
Scanner主要提供了两个方法来扫描输入。
| 方法 | 描述 |
|---|---|
hasNextXxx() |
是否还有下一个输入项,其中Xxx可以是int、Long等代表基本数据类型的字符串。如果只是判断是否包含下一个字符串,则直接使用hasNext() |
nextXxx() |
获取下一个输入项。 |
Scanner分隔符
在默认情况下, Scanner使用空白(包括空格、Tab键、回车)作为多个输入项之间的分隔符。
Scanner的读取操作可能被阻塞来等待信息的输入。如果输入源没有结束,Scanner又读不到更多输入项时(尤其在键盘输入时比较常见), Scanner的hasNext()和next()方法都有可能阻塞, hasNext()方法是否阻塞与和其相关的next()方法是否阻塞无关。
逐行读取方法
Scanner提供了两个简单的方法来逐行读取。
| 方法 | 描述 |
|---|---|
boolean hasNextLine() |
判断输入源中是否还有下一行。 |
String nextLine() |
返回输入源中下一行的字符串。 |
Scanner获取基本类型的输入项。
读取文件输入
Scanner不仅能读取用户的键盘输入,还可以读取文件输入。只要在创建Scanner对象时传入一个File对象作为参数,就可以让读取该文件的内容。