首页 > Java > java教程 > 正文

在Java中如何使用Scanner读取输入数据_Scanner类使用经验

P粉602998670
发布: 2025-12-01 15:50:03
原创
526人浏览过
Scanner类是Java中读取用户输入的常用工具,位于java.util包中。通过创建Scanner实例并传入System.in,可使用nextInt()、nextDouble()等方法读取基本数据类型;读取含空格字符串需用nextLine(),但要注意nextInt()后需调用一次nextLine()吸收换行符,避免输入跳过。为防止非法输入,可用hasNextInt()进行校验,并通过循环提示重输。建议使用完毕后调用close()释放资源,避免泄露。尽管性能不如BufferedReader,但Scanner简单易用,适合初学者和算法练习。

在java中如何使用scanner读取输入数据_scanner类使用经验

在Java中,Scanner 类是读取用户输入最常用的方式之一。它位于 java.util.Scanner 包中,可以方便地从控制台、文件或字符串中解析基本数据类型和字符串。下面介绍它的常见用法和使用技巧。

创建Scanner对象并读取基本数据

要使用 Scanner,必须先创建其实例,并传入输入源(如 System.in 表示标准输入)。之后可调用相应方法读取不同类型的数据。

例如,从控制台读取整数和字符串:

import java.util.Scanner;

public class InputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入一个整数: ");
        int number = scanner.nextInt();

        System.out.print("请输入一个字符串: ");
        String text = scanner.next();  // 注意:next()不读取空格后内容

        System.out.println("你输入的整数是: " + number);
        System.out.println("你输入的字符串是: " + text);

        scanner.close();  // 建议关闭资源
    }
}
登录后复制

读取包含空格的字符串

使用 scanner.next() 只能读取以空白符分隔的单个词,若想读取一整行(包括空格),应使用 scanner.nextLine()

立即学习Java免费学习笔记(深入)”;

注意:在 nextInt() 等方法后调用 nextLine() 时,可能会“跳过”输入,因为 nextInt 不会 consume 换行符。解决方法是在中间加一次 dummy nextLine:

Fireflies.ai
Fireflies.ai

自动化会议记录和笔记工具,可以帮助你的团队记录、转录、搜索和分析语音对话。

Fireflies.ai 145
查看详情 Fireflies.ai
System.out.print("请输入年龄: ");
int age = scanner.nextInt();

// 消费掉换行符
scanner.nextLine();

System.out.print("请输入姓名: ");
String name = scanner.nextLine();  // 正常读取全名
登录后复制

读取其他数据类型与输入验证

Scanner 支持多种读取方法:

  • nextInt():读取 int
  • nextDouble():读取 double
  • nextBoolean():读取 boolean
  • hasNextInt():判断下一个输入是否为 int,用于输入校验

示例:安全读取整数,防止输入异常:

while (!scanner.hasNextInt()) {
    System.out.println("请输入有效的整数!");
    scanner.next(); // 跳过非法输入
}
int validNumber = scanner.nextInt();
登录后复制

关闭Scanner与资源管理

程序结束前建议调用 scanner.close(),避免资源泄露。如果 Scanner 用于读取 System.in,在关闭后再次创建 Scanner 可能会导致无法读取输入(某些环境下)。

若在多个地方使用,可考虑只创建一个 Scanner 实例并复用,最后统一关闭。

基本上就这些。Scanner 简单易用,适合初学者和小型项目。对性能要求高或处理复杂输入时,可考虑 BufferedReader 配合 Integer.parseInt() 等方式。但日常练习和算法题中,Scanner 完全够用。

以上就是在Java中如何使用Scanner读取输入数据_Scanner类使用经验的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号