思路: 确定出不为0的个数,这样可以开辟新数组;从旧的数组之中,取出内容, 并将其赋给新开辟的数组。如果判断到0,就使用continue关键字。
注意,合并成一个新的小数组后,i和j不能同步遍历,当continue跳过旧数组0的遍历后,j不跟随i++的增加而变化,而是把j++放程序的最下面,每遍历一个不为0的数后,再加一
public class Arry6 {
public static void main(String[] args) {
int []oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
//先遍历数组
int count=0;
for(int i=0;i<oldArr.length;i++){
if (oldArr[i]==0){
count++;
};
}
System.out.println("0的个数为:"+count);
int []newArr=new int[oldArr.length-count];
for(int i=0,j=0;i<oldArr.length;i++){
if (oldArr[i]==0){//j不能i同步,不然会超出范围报错,跳过0的时候j不能增加
continue;
}
newArr[j]=oldArr[i];
j++;
}System.out.println("新的数组为:");
printIntArray(newArr);
}
public static void printIntArray(int[] array) {
for (int i = 0; i < array.length; i++) {
if (i == 0) {
System.out.print("[" + array[i] + ", ");
} else if (i == array.length - 1) {
System.out.print(array[i] + "]");
} else {
System.out.print(array[i] + ", ");
}
}
//换行
System.out.println();
}
}
运行结果如下:
标签:遍历,int,++,数组,public,oldArr From: https://blog.csdn.net/ABU009/article/details/140837587