1.java中数组不太好用,尽量用List。
2.array[array.length-1]=null,你这个语句只是将数组位置值置为null,不是删除数组元素,还是会输出。
3.你第一个循环要用continue,不能用break,这是无法运行的最主要问题。
最好是使用List
public static void main(String[] args) {
String[] arr = { "IPhone3GS", "IPhone4", "IPhone4S", "IPhone5" };
String remove = "IPhone3GS";
ArrayListtemp = new ArrayList (Arrays.asList(arr));
boolean flag = false;
for (String str : temp) {
if (str.equals(remove)) {
temp.remove(str);
flag = true;
break;
}
}
if (flag) {
arr = temp.toArray(new String[arr.length - 1]);
} else {
System.out.println("未找到 '" + remove + "'");
}
System.out.println(Arrays.toString(arr));
}
//查找插入位置
if(array[i].equals("iPhone3GS")){
index=i;//i=0
break;
}
当你执行到此处 第一次循环就会进入到此if判断 然后break 跳出循环了。跳出循环所以循环里的其他代码就不会被执行了
if(array[i].equals("iPhone3GS")){
index=i;
break;
}
这个break跳出循环了
看了一下你的代码,按照你代码中想表达的逻辑,你第一个for循环结束的位置,应该是在第一个if结束之后。