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

蓝桥杯备考随手记: Scanner 类中常用方法

Scanner类是Java中用于从标准输入、文件或其他输入流中读取数据的类。它提供了一系列方法来读取不同类型的数据,例如整数、浮点数、字符串等。

在Java中,Scanner类位于java.util包中,使用时需要先导入该包。

使用Scanner类需要先创建一个Scanner对象,并将要读取的输入流传递给它的构造函数。

常见的用法有:

  1. 从标准输入读取数据:
    Scanner scanner = new Scanner(System.in);
    int num = scanner.nextInt();  // 读取一个整数
    double d = scanner.nextDouble();  // 读取一个浮点数
    String str = scanner.next();  // 读取一个字符串
    
  2. 从文件中读取数据:
    Scanner scanner = new Scanner(new File("data.txt"));
    int num = scanner.nextInt();  // 读取一个整数
    double d = scanner.nextDouble();  // 读取一个浮点数
    String str = scanner.next();  // 读取一个字符串
    

下面介绍一些常用的方法:

  1. next() 用于读取并返回输入流中的下一个字符串。该方法会自动忽略输入中的空白字符,并返回以空白字符分隔的字符串。

    Scanner scanner = new Scanner(System.in);
    String str = scanner.next();
    
  2. nextLine() 用于读取并返回输入流中的下一行字符串。该方法会读取直到遇到换行符为止,并返回包括换行符在内的整行字符串。

    Scanner scanner = new Scanner(System.in);
    String line = scanner.nextLine();
    
  3. nextInt() 用于读取并返回输入流中的下一个整数。该方法会自动跳过输入中的空白字符,并返回一个整数。

    Scanner scanner = new Scanner(System.in);
    int num = scanner.nextInt();
    
  4. nextDouble() 用于读取并返回输入流中的下一个浮点数。该方法会自动跳过输入中的空白字符,并返回一个浮点数。

    Scanner scanner = new Scanner(System.in);
    double d = scanner.nextDouble();
    
  5. hasNext() 用于判断输入流中是否还有下一个元素,如果有则返回true,否则返回false。

    Scanner scanner = new Scanner(System.in);
    if (scanner.hasNext()) {String str = scanner.next();
    }
    
  6. hasNextInt() 用于判断输入流中下一个元素是否为整数,如果是则返回true,否则返回false。

    Scanner scanner = new Scanner(System.in);
    if (scanner.hasNextInt()) {int num = scanner.nextInt();
    }
    
  7. hasNextDouble() 用于判断输入流中下一个元素是否为浮点数,如果是则返回true,否则返回false。

    Scanner scanner = new Scanner(System.in);
    if (scanner.hasNextDouble()) {double d = scanner.nextDouble();
    }
    
  8. useDelimiter():设置分隔符。默认情况下,Scanner使用空白字符(包括空格、Tab键、换行符等)作为分隔符。可以使用useDelimiter()方法将其修改为其他分隔符。
    Scanner scanner = new Scanner(System.in);
    scanner.useDelimiter(",");
    String str = scanner.next();  // 以逗号作为分隔符读取下一个字符串
    

在使用Java中的Scanner类时,需要注意以下几点:

  1. Scanner类会自动跳过输入中的空白字符(如空格、Tab键、换行符等),直到读取到有效的数据为止。

  2. 换行符被视为输入结束的标志,因此在使用next()方法读取完一个输入后,需要使用nextLine()方法来读取下一行输入。

  3. 使用完Scanner类后,应调用其close()方法来释放资源,特别是在读取文件时,要及时关闭文件流。

  4. 在使用Scanner类读取输入时,应确保输入格式正确,以避免出现异常。可以使用hasNextXxx()方法进行判断,以确保输入流中的下一个元素是期望的类型。

总之,在使用Scanner类时,要注意处理空白字符、换行符,及时关闭Scanner对象,确保输入格式正确,以提高程序的健壮性和可靠性。

相关文章:

  • 竞赛常考的知识点大总结(五)动态规划
  • 【电源专题】电池均衡算法和均衡方式
  • 关于C#操作SQLite数据库的一些函数封装
  • keycloak - 鉴权VUE
  • 【Linux实践室】Linux高级用户管理实战指南:创建与删除用户组操作详解
  • JavaWeb前端基础(HTML CSS JavaScript)
  • acwing算法提高之图论--SPFA找负环
  • K8S基于containerd做容器从harbor拉取镜
  • 【Effective C++】41 了解隐式接口和编译器多态
  • 16、前缀和(含源码)
  • 全国计算机等级考试三级Linux应用与开发技术考试-习题汇总
  • Java基础学习:Java agent
  • 【C++】背包问题
  • DFS:floodfill算法解决矩阵联通块问题
  • MySQL面试题系列-13
  • 【翻译】babel对TC39装饰器草案的实现
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CentOS从零开始部署Nodejs项目
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • IDEA常用插件整理
  • Javascript设计模式学习之Observer(观察者)模式
  • mysql 5.6 原生Online DDL解析
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • 彻底搞懂浏览器Event-loop
  • 初识MongoDB分片
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 和 || 运算
  • 学习笔记TF060:图像语音结合,看图说话
  • Java数据解析之JSON
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​如何防止网络攻击?
  • #13 yum、编译安装与sed命令的使用
  • #DBA杂记1
  • (SpringBoot)第二章:Spring创建和使用
  • (十一)手动添加用户和文件的特殊权限
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转) Face-Resources
  • ******之网络***——物理***
  • *上位机的定义
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .sh 的运行
  • .sys文件乱码_python vscode输出乱码
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • .考试倒计时43天!来提分啦!
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [ffmpeg] aac 音频编码
  • [hdu 1711] Number Sequence [kmp]
  • [java进阶]——方法引用改写Lambda表达式
  • [leetcode]114. Flatten Binary Tree to Linked List由二叉树构建链表
  • [Oh My C++ Diary]Main函数参数argc,argv如何传入