【发布时间】:2021-09-09 01:22:42
【问题描述】:
基本上,我正在尝试创建一个新长度的全新数组,其中仅包含整数数组中的偶数 ints。
但是,我收到了index out of bounds error。你能帮我找出我做错了什么吗?
import java.util.Arrays;
public class findevens {
public static void main(String[] args) {
System.out.println(Arrays.toString(evens(new int[]{4,8,19,3,5,6})));
}
public static int[] evens(int[] arr) {
//create new array by determining length
//of even number ints
int length = 0;
int j = 0;
for (int i = 0; i < arr.length; i++)
{
if (arr[i] % 2 == 0) {
length++;
}
}
int[] result = new int[length];
//add even ints to new array
for (int i = 0; i < arr.length; i++)
{
if (arr[i] % 2 == 0) {
result[i] += arr[i];
}
}
return result;
}
}
【问题讨论】:
-
在第二个循环中,您需要一个额外的计数器变量来插入新数组,因为您不能只复制到同一个索引。 (例如在循环之前声明
int insertionCounter = 0;并使用result[insertionCounter++] =设置元素)
标签: java arrays string integer