亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java 扫描器类

Java 扫描器类

在本教程中,我们将通过示例了解 Java Scanner 及其方法。

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


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

import java.util.Scanner;

class Main {
  public static void main(String[] args) {

    // creates an object of Scanner
    Scanner input = new Scanner(System.in);

    System.out.print("Enter your name: ");

    // takes input from the keyboard
    String name = input.nextLine();

    // prints the name
    System.out.println("My name is " + name);

    // closes the scanner
    input.close();
  }
}

输出

Enter your name: Kelvin
My name is Kelvin

在上面的例子中,注意这一行

Scanner input = new Scanner(System.in);

在这里,我们创建了一个 Scanner 的对象 命名为 输入 .

System.in 参数用于从标准输入中获取输入。它的工作原理就像从键盘输入一样。

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

现在您对 Scanner 有了一些了解 ,让我们进一步了解它。


导入扫描器类

从上面的例子可以看出,我们需要导入java.util.Scanner 包才可以使用Scanner 类。

import java.util.Scanner;

要了解有关导入包的更多信息,请访问 Java 包。


用 Java 创建一个 Scanner 对象

导入包后,我们可以创建 Scanner 对象。

// read input from the input stream
Scanner sc1 = new Scanner(InputStream input);

// read input from files
Scanner sc2 = new Scanner(File file);

// read input from a string
Scanner sc3 = new Scanner(String str);

在这里,我们创建了 Scanner 的对象 分别从 InputStream、File 和 String 读取输入的类。


获取输入的 Java 扫描器方法

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

方法 说明
nextInt() 读取一个 int 来自用户的价值
nextFloat() 读取一个 float 价值来自用户
nextBoolean() 读取一个 boolean 来自用户的价值
nextLine() 从用户那里读取一行文本
next() 从用户那里读取一个单词
nextByte() 读取一个 byte 来自用户的价值
nextDouble() 读取一个 doubl 来自用户的价值
nextShort() 读取一个 short 来自用户的价值
nextLong() 读取一个 long 来自用户的价值

示例 2:Java 扫描器 nextInt()

import java.util.Scanner;

class Main {
  public static void main(String[] args) {

    // creates a Scanner object
    Scanner input = new Scanner(System.in);

    System.out.println("Enter an integer: ");

    // reads an int value
    int data1 = input.nextInt();

    System.out.println("Using nextInt(): " + data1);

    input.close();
  }
}

输出

Enter an integer:
22
Using nextInt(): 22

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


示例 3:Java 扫描器 nextDouble()

import java.util.Scanner;

class Main {
  public static void main(String[] args) {

    // creates an object of Scanner
    Scanner input = new Scanner(System.in);
    System.out.print("Enter Double value: ");

    // reads the double value
    double value = input.nextDouble();
    System.out.println("Using nextDouble(): " + value);

    input.close();
  }
}

输出

Enter Double value: 33.33
Using nextDouble(): 33.33

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


示例 4:Java 扫描器 next()

import java.util.Scanner;

class Main {
  public static void main(String[] args) {

    // creates an object of Scanner
    Scanner input = new Scanner(System.in);
    System.out.print("Enter your name: ");

    // reads the entire word
    String value = input.next();
    System.out.println("Using next(): " + value);

    input.close();
  }
}

输出

Enter your name: Jonny Walker
Using next(): Jonny

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

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

这是因为 next() 方法读取输入直到 空白 特点。一旦 空格 遇到,则返回字符串(不包括空格)。


示例 5:Java 扫描器 nextLine()

import java.util.Scanner;

class Main {
  public static void main(String[] args) {

    // creates an object of Scanner
    Scanner input = new Scanner(System.in);
    System.out.print("Enter your name: ");

    // reads the entire line
    String value = input.nextLine();
    System.out.println("Using nextLine(): " + value);

    input.close();
  }
}

输出

Enter your name: Jonny Walker
Using nextLine(): Jonny Walker

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

不同于 next() , nextLine() 方法读取包括空格在内的整行输入。该方法在遇到下一行字符 \n 时终止 .

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


Java 扫描器与 BigInteger 和 BigDecimal

Java 扫描器也可以用来读取大整数和大十进制数。


示例 4:读取 BigInteger 和 BigDecimal

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;

class Main {
  public static void main(String[] args) {

    // creates an object of Scanner
    Scanner input = new Scanner(System.in);
    System.out.print("Enter a big integer: ");

    // reads the big integer
    BigInteger value1 = input.nextBigInteger();
    System.out.println("Using nextBigInteger(): " + value1);

    System.out.print("Enter a big decimal: ");

    // reads the big decimal
    BigDecimal value2 = input.nextBigDecimal();
    System.out.println("Using nextBigDecimal(): " + value2);

    input.close();
  }
}

输出

Enter a big integer: 987654321
Using nextBigInteger(): 987654321
Enter a big decimal: 9.55555
Using nextBigDecimal(): 9.55555

在上面的例子中,我们使用了 java.math.BigIntegerjava.math.BigDecimal 包读取BigIntegerBigDecimal 分别。


Java Scanner 的工作

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

假设有一个输入字符串:

He is 22

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

注意 :默认情况下,使用空格来划分token。


java

  1. Java final 关键字
  2. Java instanceof 运算符
  3. Java 继承
  4. Java 嵌套静态类
  5. Java 匿名类
  6. Java 单例类
  7. Java 反射
  8. Java ArrayList 类
  9. Java ObjectOutputStream 类
  10. Java 扫描器类
  11. Java 泛型
  12. Java 文件类