7.1.2 使用Scanner获取键盘输入

7.1.2 使用Scanner获取键盘输入

使用Scanner类可以很方便地获取用户的键盘输入, Scanner是一个基于正则表达式的文本扫描器,它可以从文件输入流字符串中解析出基本类型值和字符串值。
Scanner类提供了多个构造器,不同的构造器可以接收文件、输入流、字符串作为数据源,用于从文件、输入流、字符串中解析数据。

Scanner主要方法

Scanner主要提供了两个方法来扫描输入。

方法 描述
hasNextXxx() 是否还有下一个输入项,其中Xxx可以是intLong等代表基本数据类型的字符串。如果只是判断是否包含下一个字符串,则直接使用hasNext()
nextXxx() 获取下一个输入项。

Scanner分隔符

在默认情况下, Scanner使用空白(包括空格Tab键、回车)作为多个输入项之间的分隔符。

Scanner的读取操作可能被阻塞来等待信息的输入。如果输入源没有结束,Scanner又读不到更多输入项时(尤其在键盘输入时比较常见), ScannerhasNext()next()方法都有可能阻塞, hasNext()方法是否阻塞与和其相关的next()方法是否阻塞无关。

逐行读取方法

Scanner提供了两个简单的方法来逐行读取。

方法 描述
boolean hasNextLine() 判断输入源中是否还有下一行。
String nextLine() 返回输入源中下一行的字符串。

Scanner获取基本类型的输入项。

读取文件输入

Scanner不仅能读取用户的键盘输入,还可以读取文件输入。只要在创建Scanner对象时传入一个File对象作为参数,就可以让读取该文件的内容。