Java中如何编写读取数组输入的main函数?(实习笔试场景)
Java 读取数组格式输入的main函数实现
核心思路
针对[元素1, 元素2, ..., 元素n]这种带方括号、逗号分隔的输入格式,需按以下步骤处理:
- 读取完整输入字符串
- 移除首尾方括号并清理多余空格
- 按逗号分割出单个元素字符串
- 转换为对应数据类型的数组(以下以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
相关产品推荐
相关产品推荐

