【发布时间】:2018-02-10 00:33:06
【问题描述】:
我必须创建一个方法,该方法接受一个数组和值作为参数,并返回一个删除了指定值的新数组。
这是我的尝试:
public static int[] remove(int[] nums,int value){
int[] after = new int[nums.length-1];
for (int i = 0; i < nums.length; i++) {
if (!(nums[i] == value)) {
after[i] = nums[i];
}
}
nums = after;
return nums;
}
代码抛出
ArrayIndexOutOfBoundsException
我不知道为什么。
【问题讨论】:
-
您的问题是什么?上面的代码不起作用吗?如果是这样,它是如何失败的?
-
如果
value不是nums数组中的最后一个元素,您将得到ArrayIndexOutOfBoundsException,因为after长度比num长度小1,而i为高达nums.length - 1。 -
正如 KyrSt 所说,您需要添加错误消息,以便此问题对其他程序员有所帮助。运行时会发生什么?
标签: java arrays indexoutofboundsexception