如何在 Java 中从用户获取输入?

2025年4月7日 | 阅读 5 分钟

用户输入是任何应用程序的基本组成部分。它允许程序与用户进行交互,使其具有动态性和响应性。在 Java 中,有几种方法可以获取用户输入,最常用的方法包括 Scanner 类、BufferedReader 类和 Console 类。

使用 Java Scanner 类获取输入

Java Scanner 类允许用户从控制台获取输入。它属于 java.util 包。它用于读取 int、double、long、short、float 和 byte 等基本类型。这是在 Java 程序中读取输入的​​最简单的方法。

语法

上面的语句创建了 Scanner 类的构造函数,其中 System.in 是一个参数。这意味着它将从程序的标准输入流中读取。使用 Scanner 类时应导入 java.util 包。

它还可以使用平台的默认字符集将字节(来自输入流)转换为字符。

我们必须按照以下步骤从用户处读取输入。

1. 导入 Scanner 类

2. 创建一个 Scanner 对象

3. 读取不同类型的输入

Java Scanner 类的方法

Java Scanner 类提供了以下方法来读取不同的基本类型

方法描述
int nextInt()它用于将输入中的下一个标记扫描为整数。
float nextFloat()它用于将输入中的下一个标记扫描为浮点数。
double nextDouble()它用于将输入中的下一个标记扫描为双精度数。
byte nextByte()它用于将输入中的下一个标记扫描为字节。
String nextLine()将此扫描器移至当前行之后。
boolean nextBoolean()它用于将输入中的下一个标记扫描为布尔值。
long nextLong()它用于将输入中的下一个标记扫描为长整型。
short nextShort()它用于将输入中的下一个标记扫描为 Short 类型。
BigInteger nextBigInteger()它用于将输入中的下一个标记扫描为 BigInteger。
BigDecimal nextBigDecimal()它用于将输入中的下一个标记扫描为 BigDecimal。

从用户获取整数输入的示例

以下示例允许用户从 System.in 读取整数。

文件名:UserInputDemo.java

输出

How to get input from user in Java

从用户获取字符串输入的示例

让我们看另一个例子,其中我们获取了字符串输入。

文件名:UserInputDemo1.java

输出

How to get input from user in Java

使用 Java BufferedReader 类获取输入

BufferedReader 类属于 java.io 包。它可以用来高效地从输入流中读取文本。当我们处理大量文本时,它尤其有用。

1. 导入必要的类

2. 创建一个 BufferedReader 对象

3. 读取输入

让我们创建一个完整的 Java 程序。

文件名:BufferedReaderExample.java

输出

Enter your name: manoj
Enter your age: 21
Enter your height: 175
Name: manoj
Age: 21
Height: 175.0

Java 从用户获取输入的选择题

1. 使用 Scanner 类读取用户整数输入的方法是?

  1. scanner.nextInt()
  2. scanner.readInt()
  3. scanner.getInt()
  4. scanner.fetchInt()
 

答案:a

解释: scanner.nextInt() 方法用于使用 Scanner 类读取用户的整数输入。


2. 如何处理使用 Scanner 读取输入时的 InputMismatchException?

  1. 使用 try-catch 块
  2. 使用 if 语句
  3. 使用 switch 语句
  4. 使用 for 循环
 

答案:a

解释: InputMismatchException 可以使用 try-catch 块来捕获异常并适当地处理它。


3. 哪个类用于以安全的方式从控制台读取输入,而不会将字符回显到控制台?

  1. Scanner
  2. BufferedReader
  3. DataInputStream
  4. Console
 

答案:d

解释: Console 类用于以安全的方式从控制台读取输入,特别是对于密码很有用,因为它不会将字符回显到控制台。


4. 使用 Scanner 从用户读取 double 类型输入的正确方法是什么?

  1. scanner.nextDouble()
  2. scanner.readDouble()
  3. scanner.fetchDouble()
  4. scanner.getDouble()
 

答案:a

解释: scanner.nextDouble() 方法用于使用 Scanner 类读取用户的 double 类型输入。


5. 如何使用 BufferedReader 从用户读取多行输入?

  1. 在循环中使用 bufferedReader.readLine()
  2. 使用 bufferedReader.nextLine()
  3. 使用 bufferedReader.readAll()
  4. 使用 bufferedReader.readLines()
 

答案:a

解释: 您可以通过在循环中调用 bufferedReader.readLine() 来从用户读取多行输入,直到读取所需的行数或满足终止条件为止。


下一个主题Java 教程