当前位置: 首页 > news >正文

Java Scanner 类

`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 开发中非常实用,特别是在需要与用户交互、从文件中读取数据或者进行简单的数据处理时,它能够简化输入流的操作,提高代码的可读性和易用性。

http://www.lryc.cn/news/402130.html

相关文章:

  • OceanBase:引领下一代分布式数据库技术的前沿
  • Win11鼠标卡顿 - 解决方案
  • 使用 ABBYY FineReader PDF 15 在创建或转换 PDF 时自动生成书签
  • k8s集群新增节点
  • springAMQP自定义fanout交换机进行消息的广播
  • Nginx配置缺少导致CSS不起作用
  • 从代理模式到注解开发
  • 力扣刷题(自用)
  • 网站开发:使用VScode安装yarn包和运行前端项目
  • Linux_线程的使用
  • [word] word如何编写公式? #微信#知识分享
  • Pytest 框架快速入门
  • 抖音视频素材去哪里找啊?视频素材网站库分享
  • win10 langchain-chatchat-0.3.1安装及测试
  • Redis 教程:从入门到入坑
  • 计算机图形学入门31:动画与模拟的求解
  • Jmeter-单用户单表查询千条以上数据,前端页面分页怎么做
  • 夏日养猫攻略!你家猫咪缺水了吗?补水罐头秘籍大公开
  • 生成名片格式
  • Linux常用命令(简要总结)
  • 从挑战到实战!TDengine 新能源行业研讨会要点回顾
  • Linux 之 设置环境变量
  • postgresql删除用户
  • 【java深入学习第5章】Spring Boot 统一功能的实现及处理方式
  • 【常见开源库的二次开发】基于openssl的加密与解密——单向散列函数(四)
  • 获取不重复流水号(java)
  • 【python虚拟环境管理】【mac m3】 使用pipx安装poetry
  • git使用以及理解
  • openlayers 3d 地图 非三维 立体地图 行政区划裁剪 地图背景
  • GEO数据挖掘从数据下载处理质控到差异分析全流程分析步骤指南