`Scanner` 类是 Java 中用于读取用户输入的方便工具,它可以从各种数据源(如标准输入流、文件、字符串等)中读取基本类型和字符串。`Scanner` 类位于 `java.util` 包中,通常用于从键盘获取用户输入数据。
### 主要功能和用法
1. **创建 Scanner 对象**:
- 使用 `System.in` 创建一个 `Scanner` 对象,用于读取标准输入(键盘输入):
```java
Scanner scanner = new Scanner(System.in);
```
2. **读取不同类型的数据**:
- `Scanner` 类提供了多种方法来读取不同类型的数据,如整数、浮点数、布尔值和字符串等。
- **示例1:读取整数**
```java
System.out.print("Enter an integer: ");
int num = scanner.nextInt();
System.out.println("You entered: " + num);
```
- **示例2:读取浮点数**
```java
System.out.print("Enter a floating point number: ");
double num = scanner.nextDouble();
System.out.println("You entered: " + num);
```
- **示例3:读取字符串**
```java
System.out.print("Enter your name: ");
String name = scanner.nextLine();
System.out.println("Hello, " + name);
```
3. **关闭 Scanner 对象**:
- 当不再需要从输入流中读取数据时,建议关闭 `Scanner` 对象以释放资源:
```java
scanner.close();
```
4. **处理输入中的异常**:
- 在使用 `Scanner` 读取数据时,要注意可能出现的异常情况,比如输入类型不匹配或者输入不完整等,需要适当处理这些异常。
### 示例
以下是一个完整的示例程序,演示了如何使用 `Scanner` 类从用户输入中获取整数和浮点数,并进行简单的计算:
```java
import java.util.Scanner;
public class ScannerExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取整数
System.out.print("Enter an integer: ");
int num1 = scanner.nextInt();
// 读取浮点数
System.out.print("Enter a floating point number: ");
double num2 = scanner.nextDouble();
// 计算和
double sum = num1 + num2;
System.out.println("Sum of " + num1 + " and " + num2 + " is " + sum);
scanner.close();
}
}
```
### 注意事项
- 使用 `Scanner` 类时要注意处理异常,如 `InputMismatchException`,特别是当用户输入的数据类型与程序预期的类型不匹配时。
- 在读取完数据后,及时关闭 `Scanner` 对象以释放资源,避免资源泄漏。
`Scanner` 类在日常的 Java 开发中非常实用,特别是在需要与用户交互、从文件中读取数据或者进行简单的数据处理时,它能够简化输入流的操作,提高代码的可读性和易用性。