如何在 Java 中获取用户输入

Rupam Yadav 2023年1月30日 2020年11月24日
  1. 在 Java 中 Scanner 获取用户输入的方法
  2. 在 Java 中 BufferedReader 获取用户输入
如何在 Java 中获取用户输入

在本文中,我们将讨论在 Java 中获取用户输入的最佳方法。虽然有很多方法,但其中一些方法已经被废弃,因此我们将避免使用它们。

在 Java 中 Scanner 获取用户输入的方法

我们可以使用 Scanner 来实现我们的目标。我们需要创建一个类的对象,并将 System.in 传递给它的构造函数,因为它打开了一个 InputStream 来获取用户的输入。

下一步就是使用 Scanner 对象,并调用下面的一个方法。每个方法都会获取不同数据类型的输入值。

方法 说明
next() 字符串值
nextInt() 整数值
nextByte() 字节值
nextLong() 长值
nextFloat() 浮动值
nextDouble() 双值

在下面的例子中,我们将使用 nextInt() 方法,该方法取整数值。

例子:

import java.util.Scanner;

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

        Scanner inputReader = new Scanner(System.in);
        System.out.println("Enter a number: ");
        int number = inputReader.nextInt();

    		System.out.println("Your entered number was: "+number);        

    }

}

输出:

Enter a number: 
454
Your entered number was: 454

在 Java 中 BufferedReader 获取用户输入

我们有另一个类可以从用户那里获得输入。BufferedReader 使用字符流从输入中读取文本,而 Scanner 可以用于原始类型的输入。

这意味着它没有像 BufferedReader 类中的 nextInt() 这样的方法,但有一个 readLine() 方法,它可以接受输入,然后我们可以在后面对其进行解析。

在下面的例子中,我们把输入作为一个 int。我们必须读取输入,然后使用 Integer.parseInt(String) 将其解析为 int 类型。我们应该用 try-catch 块包围语句,因为如果没有外部输入设备,可能会出现 IOException。

例子:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

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

        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);

        try {

            System.out.println("Please enter a number: ");
           String s = br.readLine();
            int i = Integer.parseInt(s);

            System.out.println("Your entered number was: "+i);
        } catch (IOException e) {
            e.printStackTrace();
        }

        br.close();

    }
}

输出:

Please enter a number: 
454
Your entered number was: 454
Author: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相关文章 - Java Input