请参阅下面的代码。
任务是制作替换用户插入的元素的代码,并且只能替换for-statement(这是任务要求)。剩下的元素将被保存。例如。当输入为“1”时,预期以下输出为“0 2 3 4”
请帮助修改后续行为的for-statement “System.out.println(”要删除的以下元素“+ removedElement);”。
如果可能,请在“<”时告知两个选项和“>”符号可以使用。
import java.util.Scanner;
public class MainClass {
public static void main(String[] args) {
int baseArray [] = {0, 1, 2, 3, 4};
System.out.println("Existing array:");
for(int i = 0; i < baseArray.length; i++){
System.out.println(baseArray[i]);
}
System.out.println("Please indicate number of element to be deleted");
Scanner scr = new Scanner (System.in);
int removedElement = scr.nextInt();
System.out.println("The following element to de deleted "+removedElement);
for (int i = baseArray.length; i>removedElement; i--){
**baseArray[i]=baseArray[i];**
}
scr.close();
for(int i = 0; i < baseArray.length-1; i++){
System.out.println(baseArray[i]);
}
}
}
答案 0 :(得分:1)
似乎通过&#34;删除&#34;一个元素, 你想通过将所有元素向后移动一个位置来覆盖要删除的元素。 要做到这一点,从要移除的位置开始, 迭代到最后一个位置之前的一个, 并从下一个位置复制值:
Tag
对于记录,使用System.arraycopy
:
for (int i = removedElement; i < baseArray.length - 1; i++) {
baseArray[i] = baseArray[i + 1];
}