10. 文本扫描器 java.util 类 Scanner
- 一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
构造方法 接收System.in
, File
和 InputStream
- public Scanner(File source):构造一个新的 Scanner,它生成的值是从指定文件扫描的。
- public Scanner(InputStream source):构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。
- public Scanner(String source):构造一个新的 Scanner,它生成的值是从指定字符串扫描的。
常用方法 hasNext()
, hasNextXx()
, next()
, nextXx()
- public boolean hasNext():如果此扫描器的输入中有另一个标记,则返回 true。
- public boolean hasNextLine():如果在此扫描器的输入中存在另一行,则返回 true。
- public boolean hasNextInt():如果通过使用 nextInt() 方法,此扫描器输入信息中的下一个标记可以解释为默认基数中的一个 int 值,则返回 true。扫描器不执行任何输入。
- public boolean hasNextInt(int radix):如果通过使用 nextInt() 方法,此扫描器输入信息中的下一个标记可以解释为指定基数中的一个 int 值,则返回 true。扫描器不执行任何输入。
hasNextBigDecimal()
,hasNextBigInteger()
,hasNextBoolean()
,hasNextByte()
,hasNextDouble()
,hasNextFloat()
,hasNextLong()
,hasNextShort()
- public String next():查找并返回来自此扫描器的下一个完整标记。
- public String nextLine():此扫描器执行当前行,并返回跳过的输入信息。
- public int nextInt():将输入信息的下一个标记扫描为一个 int。
- public int nextInt(int radix):将输入信息的下一个标记扫描为一个 int, radix 用于将标记解释为 int 值的基数。
nextBigDecimal()
,nextBigInteger()
,NextBoolean()
,NextByte()
,NextDouble()
,NextFloat()
,NextLong()
,NextShort()
- public void close():关闭此扫描器。
知识扩展
1、接收控制台输入
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
//String name = sc.nextLine();
int age = sc.nextInt();
//float salary = sc.nextFloat();
if (age > 100) {
age = 100;
}
2、next() 与 nextLine() 区别
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
<https://blog.csdn.net/ZytheMoon/article/details/79293516>