<分区>
我在解决这个练习时遇到了麻烦:我必须删除数组中的所有数字 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)
你能帮我改正我的错误吗?请记住,我是编程新手,这或多或少应该是解决练习的方法,我知道有些功能可以使练习更容易,但老师不会接受其他解决方案。