java.lang.ArrayIndexOutOfBoundsException : 8

标签 java arrays

我是编程新手,正在尝试Java,我创建了这个数组并给了我这个错误,任务是计算所有正数和负数并将其放入我称为 pArr 和 nArr 的新数组中,然后计算重复项和写下它们并重复多少次,有人可以帮助我吗?

public static void main(String[] args) {
        int[] array = {12, 23, -22, 0, 43, 545, -4, -55, 43, 12, 0, -999, -87};
        int brPoz=0, brNeg=0;

        for(int a=0; a<array.length; a++){
            if(array[a]>0)
                brPoz++;
            else if (array[a]<0)
                brNeg++;
        }
        int[] pArr = new int[brPoz];
        int[] nArr = new int[brNeg];     

        for (int i = 0; i < array.length; i++) {
            if (array[i] > 0) {
                pArr[i] = array[i];
            }
        }

        for (int i = 0; i < array.length; i++) {
            if (array[i] < 0) {
                nArr[i] = array[i];
            }
        }


        Arrays.sort(array);
        Arrays.sort(pArr);
        Arrays.sort(nArr);
        System.out.println(java.util.Arrays.toString(array));
        System.out.println(java.util.Arrays.toString(pArr));
        System.out.println(java.util.Arrays.toString(nArr));


          for (int i = 0; i < array.length; i++) {
            for (int j = i + 1; j < array.length; j++) {
                if ((array[j])==array[i]) {
                    System.out.println("Duplikati su: "+array[j]);
                }
            }
        }

最佳答案

你所做的是,首先计算所有正数和负数(顺便说一句:你忽略 0...这是一个正数吗?)。然后根据这些计数创建新数组。

brPoz 和 brNeg 将小于原始数组的元素计数。因此,您需要确保仅使用结果数组中的现有索引。

这可以通过以下方式实现

    int pArrIndex = 0;
    for (int i = 0; i < array.length; i++) {
        if (array[i] > 0) {
            pArr[pArrIndex++] = array[i];
        }
    }

    int nArrIndex = 0;
    for (int i = 0; i < array.length; i++) {
        if (array[i] < 0) {
            nArr[nArrIndex++] = array[i];
        }
    }

关于java.lang.ArrayIndexOutOfBoundsException : 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41266155/

相关文章:

java - Eclipse 从代码访问工作区、编译器和导出函数

java - 调试 JVM 中 CPU 使用率 100%

javascript - 使用 jquery 从对象数组中获取属性值数组

c - 如何在 C 中浏览任意长度的字符串数组?

java - 数组的好处

java - 生成一个范围内的随机偶数?

javascript - 如何将数组应用于 View

java - 静态变量在 main 方法之外出现 null

javascript - 遍历嵌套数组对象

java - Windows 7 64位,配置2个版本的Java