java.util包的Scanner类用于从不同的源(例如输入流,用户,文件等)读取输入数据。让我们举个例子。

示例1:使用扫描仪读取一行文本

输出

在上面的示例中,请注意以下行

在这里,我们创建了一个名为input的Scanner对象。

System.in参数用于从标准输入中获取输入。就像从键盘上获取输入一样。

然后,我们使用Scanner类的nextLine()方法从用户读取一行文本。

现在您对Scanner有了一些了解,让我们对其进行更多探索。

导入扫描仪类

从上面的示例可以看出,在使用Scanner类之前,需要导入java.util.Scanner包。

用Java创建扫描程序对象

如上所述,导入包后,就可以创建Scanner对象。

在这里,我们创建了Scanner类的对象,这些对象将分别从InputStream,文件和字符串读取输入。

Java扫描仪输入方法

Scanner类提供了各种方法,使我们可以读取不同类型的输入。

Method
Description
nextInt()
reads an int value from the user
nextFloat()
reads a float value form the user
nextBoolean()
reads a boolean value from the user
nextLine()
reads a line of text from the user
next()
reads a word from the user
nextByte()
reads a byte value from the user
nextDouble()
reads a double value from the user
nextShort()
reads a short value from the user
nextLong()
reads a long value from the user

示例2:Java扫描程序nextInt()

输出

在上面的示例中,我们使用nextInt()方法读取整数值。

示例3:Java扫描仪nextDouble()

输出

在上面的示例中,我们使用nextDouble()方法读取浮点值。

示例4:Java扫描器next()

输出

在上面的示例中,我们使用next()方法从用户读取字符串 。

在这里,我们提供了全名。但是, next()方法仅读取名字。

这是因为next()方法最多读取空白 字符。遇到空格后 ,它将返回字符串 (空格除外)。

示例5:Java扫描器nextLine()

输出

在第一个示例中,我们使用nextLine()方法从用户读取字符串 。

与next()不同, nextLine()方法读取包含空格的整个输入行。当遇到下一个行字符\n时,该方法终止。

推荐读物: Java Scanner跳过nextLine()。

具有BigInteger和BigDecimal的Java扫描仪

Java扫描程序还可以用于读取大整数和大十进制数。要了解BigInteger和BigDecimal,请访问Java BigInteger和Java BigDecimal 。

nextBigInteger() -从用户读取大整数值

nextBigDecimal() -从用户读取大十进制值

示例4:读取BigInteger和BigDecimal

输出

在上面的示例中,我们使用java.math.BigInteger和java.math.BigDecimal包分别读取BigInteger和BigDecimal 。

Java扫描仪的工作

Scanner类读取整行并将该行分为令牌。令牌是对Java编译器有意义的小元素。例如,

假设有一个输入字符串:

在这种情况下,扫描程序对象将读取整行并将该字符串分为令牌:“ He “,“ is “和“ 22 “。然后,对象遍历每个令牌,并使用其不同方法读取每个令牌。

注意 :默认情况下,空格用于划分标记。