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

Java中如何编写读取数组输入的main函数?(实习笔试场景)

Java 读取数组格式输入的main函数实现

核心思路

针对[元素1, 元素2, ..., 元素n]这种带方括号、逗号分隔的输入格式,需按以下步骤处理:

  1. 读取完整输入字符串
  2. 移除首尾方括号并清理多余空格
  3. 按逗号分割出单个元素字符串
  4. 转换为对应数据类型的数组(以下以int数组为例)

完整代码示例

假设你的核心解题函数为processArray(int[] arr),完整实现如下:

import java.util.Scanner;

public class Solution {
    // 你已实现的核心解题函数
    public static void processArray(int[] arr) {
        // 这里替换为你的业务逻辑,比如数组排序、计算等
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        // 读取整行输入,避免拆分空格导致的问题
        String input = scanner.nextLine().trim();
        
        // 移除首尾方括号
        String numsContent = input.substring(1, input.length() - 1).trim();
        
        // 处理空数组输入(如[])的边界情况
        if (numsContent.isEmpty()) {
            processArray(new int[0]);
            scanner.close();
            return;
        }
        
        // 按逗号分割,兼容元素前后的任意空格
        String[] numStrs = numsContent.split("\\s*,\\s*");
        
        // 转换为int数组
        int[] arr = new int[numStrs.length];
        for (int i = 0; i < numStrs.length; i++) {
            arr[i] = Integer.parseInt(numStrs[i]);
        }
        
        // 调用你的解题函数
        processArray(arr);
        
        scanner.close();
    }
}

关键细节说明

  • 输入读取:使用Scanner.nextLine()读取整行,避免因元素间空格导致的分段读取错误
  • 字符串清理:substring移除首尾方括号,trim()清理输入前后的冗余空格
  • 分割规则:split("\\s*,\\s*")匹配逗号前后的任意空格,兼容7 ,9这类带空格的输入格式
  • 边界处理:单独判断空数组输入,避免出现数组越界异常

测试验证

当输入为[2, 3, 5, 4, 7 ,9, 8]时,代码会将其解析为int[] arr = {2,3,5,4,7,9,8},并传入你的解题函数执行逻辑。

内容的提问来源于stack exchange,提问作者Aman Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 13:24:57