Java中Scanner详细用法

hi,我是程序员王也,一个资深Java开发工程师,平时十分热衷于技术副业变现和各种搞钱项目的程序员~,如果你也是,可以一起交流交流。

今天我们来简单聊聊Java中的Scanner类。

在这里插入图片描述


Scanner是Java中用于解析文本并获取不同类型的输入(如整数、浮点数、字符串等)的一个实用工具。Scanner类位于java.util包中,它提供了多种方法来读取控制台输入。

以下是Scanner类的详细用法:

  1. 创建Scanner对象

    要使用Scanner,首先需要创建一个Scanner对象,它会包装一个输入流,通常是System.in(标准输入流)。

    Scanner scanner = new Scanner(System.in);
    
  2. 读取不同类型的输入

    • 读取字符串

      String inputString = scanner.nextLine();
      
    • 读取整数

      int inputInt = scanner.nextInt();
      
    • 读取浮点数

      double inputDouble = scanner.nextDouble();
      
    • 读取布尔值

      boolean inputBoolean = scanner.nextBoolean();
      
    • 读取多个类型的输入(需要按照顺序调用相应的读取方法):

      String name = scanner.next();
      int age = scanner.nextInt();
      scanner.nextLine(); // 读取换行符,因为nextInt()之后会留下一个换行符在输入流中
      
  3. 使用分隔符

    默认情况下,Scanner使用空格作为分隔符。如果你想使用其他字符作为分隔符,可以使用useDelimiter方法。

    scanner.useDelimiter(","); // 现在使用逗号作为分隔符
    
  4. 查找和匹配输入

    • 查找特定字符串

      if (scanner.findWithinHorizon("example", 0)) {
          System.out.println("Found 'example'");
      }
      
    • 匹配特定模式

      if (scanner.hasNext("example\\d+")) {
          String matched = scanner.next();
          System.out.println("Found matched string: " + matched);
      }
      
  5. 处理异常

    在使用Scanner时,可能会遇到InputMismatchExceptionNoSuchElementException异常。为了处理这些异常,可以使用try-catch块。

    try {
        int inputInt = scanner.nextInt();
    } catch (InputMismatchException e) {
        System.out.println("Please enter a valid integer.");
    }
    
  6. 关闭Scanner

    当不再需要Scanner对象时,应该关闭它以释放资源。Scanner实现了AutoCloseable接口,因此可以使用try-with-resources语句自动关闭。

    try (Scanner scanner = new Scanner(System.in)) {
        // 使用scanner
    } // scanner在这里自动关闭
    
  7. 其他有用的方法

    • hasNext():检查输入流中是否有下一个元素。
    • hasNextLine():检查输入流中是否有下一行。
    • skip():跳过分隔符。
    • reset():重置Scanner,忽略之前的所有输入。

Scanner类是处理用户输入的强大工具,它的灵活性和易用性使得它成为读取和解析控制台输入的首选方式。在使用Scanner时,要注意异常处理和资源管理,以确保程序的健壮性和效率。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值