You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用java.util.Scanner读取输入的数值范围(二元int数组)

问题原因

你现有代码存在三个核心问题:

  • 语法错误:for循环缺少左大括号,编译无法通过
  • 调用input.nextInt()读取输入个数后,输入缓冲区残留了换行符,第一次执行input.nextLine()会直接读取到空字符串,无法正常拿到第一组范围值
  • 缺少将读取到的范围字符串解析为int数组的逻辑,也没有对应的存储结构保存多组范围

实现代码

这里提供两种常见实现方案:

方案1:直接连续读取int值(无需处理换行,逻辑更简单)

import java.util.ArrayList;
import java.util.Scanner;

public class RangeReader {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        // 读取范围个数
        int number = input.nextInt();
        // 用集合存储所有范围数组
        ArrayList<int[]> rangeList = new ArrayList<>();

        for(int i=0;i<number;i++){
            // 每组范围连续读两个int即可,scanner会自动跳过空格、换行等空白符
            int low = input.nextInt();
            int high = input.nextInt();
            rangeList.add(new int[]{low, high});
        }
        input.close();

        // 测试输出验证结果
        for (int[] range : rangeList) {
            System.out.println("范围:" + range[0] + " " + range[1]);
        }
    }
}

方案2:读整行后拆分解析(适合需要校验每行格式的场景)

import java.util.ArrayList;
import java.util.Scanner;

public class RangeReader {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int number = input.nextInt();
        // 读完个数后主动读掉残留的换行符
        input.nextLine();
        ArrayList<int[]> rangeList = new ArrayList<>();

        for(int i=0;i<number;i++){
            String line = input.nextLine();
            // 按空格拆分字符串为两个数值字符串,自动兼容多空格场景
            String[] parts = line.trim().split("\\s+");
            int low = Integer.parseInt(parts[0]);
            int high = Integer.parseInt(parts[1]);
            rangeList.add(new int[]{low, high});
        }
        input.close();

        // 测试输出验证结果
        for (int[] range : rangeList) {
            System.out.println("范围:" + range[0] + " " + range[1]);
        }
    }
}

注意事项

  • 如果需要处理非法输入的场景,可以在解析数值的位置加try-catch捕获NumberFormatException,或者用hasNextInt()做前置校验
  • 以上代码默认输入的每组范围符合你给出的示例格式,若有大小值顺序、范围边界等要求,可自行补充判断逻辑

内容的提问来源于stack exchange,提问作者Dragos Laic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 10:57:01