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

求助:实现从int[]数组中移除指定整数的程序功能

嘿,我来帮你搞定这个程序开发的问题!你需求的核心是「生成指定范围的整数数组 → 排除指定数字 → 展示结果」,咱们一步步拆解,附上可运行的代码示例,你一看就懂:

核心实现步骤

1. 生成指定边界的整数数组

首先得让用户输入上下边界,这里要先做简单的合法性校验(比如上边界不能小于下边界),然后生成从下边界到上边界的完整数组。

2. 处理排除的数字

用户输入要排除的数字后,我们可以把这些数字存入一个HashSet(查找效率比数组高很多),然后遍历初始数组,只保留不在排除集合里的元素,得到最终的结果数组。

完整代码示例(Java)

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class ArrayExclusionDemo {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 1. 获取数组上下边界
        System.out.print("请输入数组的下边界(整数):");
        int lowerBound = scanner.nextInt();
        System.out.print("请输入数组的上边界(整数):");
        int upperBound = scanner.nextInt();

        // 校验边界合法性
        if (upperBound < lowerBound) {
            System.out.println("错误:上边界不能小于下边界!");
            scanner.close();
            return;
        }

        // 生成初始数组
        int[] originalArray = new int[upperBound - lowerBound + 1];
        for (int i = 0; i < originalArray.length; i++) {
            originalArray[i] = lowerBound + i;
        }
        System.out.println("初始数组:");
        printArray(originalArray);

        // 2. 获取需要排除的数字
        scanner.nextLine(); // 清除缓冲区的换行符
        System.out.print("请输入需要排除的数字(用逗号分隔,例如:3,5,7):");
        String excludeInput = scanner.nextLine();
        String[] excludeStrArray = excludeInput.split(",");
        Set<Integer> excludeSet = new HashSet<>();
        for (String s : excludeStrArray) {
            try {
                int num = Integer.parseInt(s.trim());
                excludeSet.add(num);
            } catch (NumberFormatException e) {
                System.out.println("忽略无效输入:" + s);
            }
        }

        // 3. 过滤数组,移除排除的数字
        ArrayList<Integer> resultList = new ArrayList<>();
        for (int num : originalArray) {
            if (!excludeSet.contains(num)) {
                resultList.add(num);
            }
        }
        // 转换为int数组(如果需要的话)
        int[] resultArray = new int[resultList.size()];
        for (int i = 0; i < resultArray.length; i++) {
            resultArray[i] = resultList.get(i);
        }

        // 4. 展示结果
        System.out.println("排除指定数字后的数组:");
        printArray(resultArray);

        scanner.close();
    }

    // 辅助方法:打印数组
    private static void printArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i]);
            if (i != array.length - 1) {
                System.out.print(", ");
            }
        }
        System.out.println();
    }
}

关键细节解释

  • 用HashSet存排除数字:因为HashSet.contains()方法的时间复杂度是O(1),比遍历数组查找快得多,尤其是当排除的数字很多时,效率优势明显。
  • 输入合法性处理:加入了边界校验和无效输入过滤(比如用户输入非数字时会忽略),避免程序崩溃。
  • 灵活的输入方式:支持用户用逗号分隔多个排除数字,更符合日常使用习惯。

如果你用的是其他语言(比如Python、C#),告诉我,我可以给你对应的版本哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:23:29