您的外循环迭代孔数组并仅当迭代是免费的时才执行i == (number-1)
内循环!array.length - 1
您可以摆脱外部 for 循环以及 the if (i ==(number-1) {
,而是编写for(int j = (number-1) ; j<array.length ; j++) {
在最后一次迭代中也会array[j+1];
给你一个ArrayIndexOutOfBoundsException 。也许你只想去直到array.length - 1
。
另外为了避免ArrayIndexOutOfBoundsException
你应该确保在迭代之前number
的范围内。[1, array.length]
以下是可能的样子:
@Test
public void overwritearrayay() {
String[] array = {"foo", "bar", "foobar"};
log(Arrays.toString(array));
overwritearrayay(array, 1);
log(Arrays.toString(array));
}
public void overwritearrayay(String[] array, int n) {
if(n > 0 && array != null && n <= array.length) {
for(int i = n-1; i < array.length-1; i++) {
array[i] = array[i+1];
}
array[array.length-1] = null;
}
}
public static void log(String string) {
System.out.println(string);
}
输出
[foo, bar, foobar]
[bar, foobar, null]