HOWTO · Java

如何在 Java 中从控制台获取输入

本教程展示了 Scanner 类中包含的读取控制台输入的各种功能。

本页内容

在本教程中,我们将查看 Java 中的 Scanner 类,并学习如何使用该类从控制台读取输入。Scanner 类来自于 Java 包 java.util.Scanner。

在下面的例子中,我们将通过 Scanner 类的方法来读取不同数据类型的输入,如 String、Int 和 boolean。

使用 Java 中的 Scanner 类从控制台获取输入

String 数据类型通常用于从控制台获取输入。Scanner 有两个函数 next() 和 nextLine(),它们把输入当作 String。这两个函数的不同之处在于,next() 在遇到空格之前都会接受输入,而 nextLine() 则会读取输入,直到看到新的行。

在我们的例子中,我们使用 nextLine() 方法,因为我们可能希望在一行中有多个单词。

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    System.out.println("Please enter your name: ");
    Scanner sc = new Scanner(System.in);
    String yourName = sc.nextLine();
    System.out.println("Hello " + yourName);
  }
}

输出:

Please enter your name: 
Mike Stuart
Hello Mike Stuart

使用 Java 中的 Scanner 类读取整数输入

我们也可以使用 Scanner 从控制台获取 int 值。nextInt() 帮助我们读取 int 值。在下面的例子中,它询问年龄,通常读作 int。

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    System.out.println("Please enter your age: ");
    Scanner sc = new Scanner(System.in);
    int scanAge = sc.nextInt();
    System.out.println("You are " + scanAge + " years old");
  }
}

输出:

Please enter your age: 
23
You are 23 years old

使用 Java 中的 Scanner 类读取布尔值输入

我们也可以使用布尔值作为输入。Scanner.nextBoolean() 只读取 true 和 false 或 0 和 1。

在下面的例子中,我们接收输入,然后检查输入是 true 还是 false。

import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    System.out.println("Are you studying in college? Answer as True or False");
    Scanner scanStudy = new Scanner(System.in);
    boolean studyingInCollege = scanStudy.nextBoolean();
    if (studyingInCollege) {
      System.out.println("You are studying in college");
    } else {
      System.out.println("You are not studying in college");
    }
  }
}

输出:

Are you studying in college? Answer as True or False
false
You are not studying in college