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

如何实现无需指定长度的整数数组用户输入(类命令行参数)

实现无需指定大小且无终止符的整数数组输入

我懂你的需求——不想让用户先输入元素数量,也不想让他们输句号这类终止符,还希望最终得到的整数数组能像命令行的String args[]那样顺手操作(比如拿长度、遍历、索引访问啥的)。其实最省心的方案就是让用户一次性把所有整数用空格分隔着输入,我们把输入内容拆分转换后,就能得到完全符合预期的整数数组。

核心思路

  1. 引导用户在一行内输入所有整数,用空格(随便多少个都行)分隔
  2. 读取整行输入,按空格拆分出字符串数组
  3. 把字符串数组转成整数数组
  4. 最终的整数数组就跟args一样,支持所有常规数组操作

代码示例(Java)

import java.util.Scanner;
import java.util.Arrays;

public class DynamicIntArrayInput {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("请输入整数(用空格分隔即可):");
        String inputLine = scanner.nextLine();
        
        // 先掐掉首尾空格,再按任意数量的空格拆分,避免空字符串元素
        String[] strElements = inputLine.trim().split("\\s+");
        int[] intArray = new int[strElements.length];
        
        try {
            // 把字符串转成整数
            for (int i = 0; i < strElements.length; i++) {
                intArray[i] = Integer.parseInt(strElements[i]);
            }
            
            // 现在就可以像操作args那样用这个数组了
            System.out.println("数组长度:" + intArray.length);
            System.out.println("所有元素:" + Arrays.toString(intArray));
            
            // 举个遍历的例子
            System.out.println("\n挨个输出元素:");
            for (int num : intArray) {
                System.out.print(num + " ");
            }
        } catch (NumberFormatException e) {
            System.out.println("\n输入里混了非整数内容,请重新输入!");
        }
        
        scanner.close();
    }
}

细节说明

  • trim() + split("\\s+"):既处理了用户不小心输入的首尾空格,也兼容了多个连续空格的情况,不会产生空的数组元素
  • 异常捕获:防止用户输入字母、符号这类非整数内容导致程序崩掉
  • 转换后的intArray完全具备常规数组的特性:能通过length拿长度,能用索引访问元素,支持增强for循环遍历,和args的使用体验一模一样

这种方式完全不用用户额外输入数量或终止符,一次输入搞定所有,完美匹配你的需求。

内容的提问来源于stack exchange,提问作者kaitou-1412

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:07:55