java - 使用另一个数组删除数组中的所有数字 0

标签 java arrays

<分区>

我在解决这个练习时遇到了麻烦:我必须删除数组中的所有数字 0。例如:

if my array has these values [18,17,0,16,0,5]
this must be my otput => [18,17,16,5]

这是我所做的:

import java.util.Scanner;
public class awz{

    public static int [] readArray (int [] n, int size){
        Scanner input = new Scanner(System.in);
        int i = 0;
        int [] container = new int[i];
        for( int j = 0;  j < size;  j++ )
            {
                System.out.println("Insert numbers"); 
                n[j] = input.nextInt();
                if( n[j] != 0 )
                container[i++] = n[j]; //Line 13
        }
        return container;
    }
    
    public static void main (String[]args){
        Scanner input = new Scanner(System.in);
        System.out.println("choose the size of your array");
        int arraySize = input.nextInt();
        int[] arrayElements = new int[arraySize];
        int [] cleanedArray = readArray(arrayElements,arraySize);   //Line 23    
    }
}

编译器不响应错误,但是当我给出输入以写入我的数组的单个值时,终端中出现一条消息并且程序崩溃:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
   at awz.readArray(awz.java:13)
   at awz.main(awz.java:23)

你能帮我改正我的错误吗?请记住,我是编程新手,这或多或少应该是解决练习的方法,我知道有些功能可以使练习更容易,但老师不会接受其他解决方案。

最佳答案

最简洁的方法是使用流:

    public class RemoveZeros {
    public static void main(String[] args){
        int[] array = new int[]{0,1,2,3,0,10};

        int[] newArrayWithoutZeros = Arrays.stream(array)
                .filter(number -> number != 0)
                .toArray();
        System.out.println(Arrays.toString(newArrayWithoutZeros));
    }
}

关于java - 使用另一个数组删除数组中的所有数字 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66507275/

相关文章:

java - 如何使用密码和盐进行 AES 加密,以便在 Java 中仅使用相同的密码和盐进行解密

java - 编写可变数量的 ListenableFuture

java - 使用 thymeleaf 中的搜索功能和请求参数

c - VLA 原型(prototype)和多维数组参数

javascript - Lodash - 搜索字符串是否包含以开头的单词

java - 用户定义的 ArrayIndexOutOfBoundsException 异常

java - ClassFormatError : 154>, Display 类中捕获异常

java - 如何在java中实现 "supplant"

c - 将文件的行存储为c中的结构数组

javascript - Google Scripts 从单元格中填充值数组及其位置