Skip to content

Java Scanner 类

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


示例 1:使用 Scanner 读取一行文本

import java.util.Scanner;

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

    // 创建 Scanner 对象
    Scanner input = new Scanner(System.in);

    System.out.print("请输入您的姓名:");

    // 从键盘获取输入
    String name = input.nextLine();

    // 打印姓名
    System.out.println("我的名字是:" + name);

    // 关闭 Scanner
    input.close();
  }
}

输出

请输入您的姓名:Kelvin
我的名字是:Kelvin

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

Scanner input = new Scanner(System.in);

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

System.in 参数用于从标准输入获取输入。它的工作方式类似于从键盘获取输入。

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

现在,你对 Scanner 有了一些了解,让我们更深入地探讨它。


导入 Scanner 类

正如我们从上面的示例中看到的,我们需要在使用 Scanner 类之前导入 java.util.Scanner 包。

import java.util.Scanner;

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


在 Java 中创建 Scanner 对象

一旦导入了该包,我们可以这样创建 Scanner 对象。

// 从输入流中读取输入
Scanner sc1 = new Scanner(InputStream input);

// 从文件中读取输入
Scanner sc2 = new Scanner(File file);

// 从字符串中读取输入
Scanner sc3 = new Scanner(String str);

在这里,我们创建了 Scanner 类的对象,分别从 InputStreamFileString 中读取输入。


Java Scanner 方法来获取输入

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

方法描述
nextInt()从用户读取一个 int
nextFloat()从用户读取一个 float
nextBoolean()从用户读取一个 boolean
nextLine()从用户读取一行文本
next()从用户读取一个单词
nextByte()从用户读取一个 byte
nextDouble()从用户读取一个 double
nextShort()从用户读取一个 short
nextLong()从用户读取一个 long

示例 2:Java Scanner nextInt()

import java.util.Scanner;

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

    // 创建 Scanner 对象
    Scanner input = new Scanner(System.in);

    System.out.println("请输入一个整数:");

    // 读取一个 int 值
    int data1 = input.nextInt();

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

    input.close();
  }
}

输出

请输入一个整数:
22
使用 nextInt():22

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


示例 3:Java Scanner nextDouble()

import java.util.Scanner;

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

    // 创建 Scanner 对象
    Scanner input = new Scanner(System.in);
    System.out.print("请输入 Double 值:");

    // 读取 double 值
    double value = input.nextDouble();
    System.out.println("使用 nextDouble():" + value);

    input.close();
  }
}

输出

请输入 Double 值:33.33
使用 nextDouble():33.33

在上面的示例中