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

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

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

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

常见的用法有:

  1. 从标准输入读取数据:

    java 复制代码
    Scanner scanner = new Scanner(System.in);
    int num = scanner.nextInt();  // 读取一个整数
    double d = scanner.nextDouble();  // 读取一个浮点数
    String str = scanner.next();  // 读取一个字符串
  2. 从文件中读取数据:

    java 复制代码
    Scanner scanner = new Scanner(new File("data.txt"));
    int num = scanner.nextInt();  // 读取一个整数
    double d = scanner.nextDouble();  // 读取一个浮点数
    String str = scanner.next();  // 读取一个字符串

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

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

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

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

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

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

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

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

    java 复制代码
    Scanner scanner = new Scanner(System.in);
    if (scanner.hasNextDouble()) {
        double d = scanner.nextDouble();
    }
  8. useDelimiter():设置分隔符。默认情况下,Scanner使用空白字符(包括空格、Tab键、换行符等)作为分隔符。可以使用useDelimiter()方法将其修改为其他分隔符。

    java 复制代码
    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对象,确保输入格式正确,以提高程序的健壮性和可靠性。

相关推荐
va学弟1 分钟前
Agent入门开发
java·运维·服务器·ai
做时间的朋友。6 分钟前
Java虚拟线程详解:从原理到实战,解锁百万并发新姿势
java·开发语言
一只大袋鼠7 分钟前
MyBatis 从入门到实战(二):代理 Dao 开发与多表关联查询
java·开发语言·数据库·mysql·mybatis
周末也要写八哥11 分钟前
C++实际开发之泛型编程(模版编程)
java·开发语言·c++
好家伙VCC12 分钟前
**发散创新:用 Rust实现游戏日引擎核心模块——从事件驱动到多线程调度的实战
java·开发语言·python·游戏·rust
014-code17 分钟前
Chronicle Queue:把 Disruptor 的数据落盘
java·服务器
小江的记录本24 分钟前
【系统设计】《2026高频经典系统设计题》(秒杀系统、短链接系统、订单系统、支付系统、IM系统、RAG系统设计)(完整版)
java·后端·python·安全·设计模式·架构·系统架构
希望永不加班32 分钟前
SpringBoot 中 AOP 实现权限校验(角色/权限)
java·spring boot·后端·spring
桌面运维家44 分钟前
IDV云桌面vDisk机房部署方案模板特性解析
java·开发语言·devops
哈密瓜刨冰1 小时前
深入浅出 SpringMVC:核心注解全解析与实战用法
java