1.现在有如下一个数组: 

   Int oldarr[]={1,5,9,0,4,0,3,6,0,7,8,0};

 要求将以上数组中的0项去掉,将不为0的值存入一个新的数组;

2.思路:

我们可以定义两个数组,旧数组中是原数组,新数组是旧数组中去掉0元素的其他元素;

要想打印新数组,必须动态初始化数组,且遍历的时候必须知道新数组的长度;

新数组长度可以用旧数组长度减去0元素的个数;

要想求出0元素的个数,用循环遍历旧数组即可;

最后将旧数组中非0元素赋值给新数组即可;

package Hello;

public class test {

	public static void main(String[] args) {
		//定义数组并初始化
		int oldarr[]=new int[]{1,5,9,0,4,0,3,6,0,7,8,0};
		//得到旧数组零的个数
		int count=0;
		for(int i=0;i<oldarr.length;i++){
			if(oldarr[i]==0){
				count++;
			}
		}
		//定义新数组,由于这里需要得知新数组的长度,因此必须求出旧数组中零的个数
		int newarr[]=new int[oldarr.length-count];
		//遍历原来的旧数组
		for(int i=0,j=0;i<oldarr.length;i++){
			//将旧数组中不等于0的元素赋给新数组
			if(oldarr[i]!=0){
				newarr[j]=oldarr[i];
				j++;
			}
		}
		System.out.println("旧数组:");
		for(int a:oldarr){
			System.out.print(a+" ");
		}
		System.out.println();
		System.out.println("新数组:");
		for(int a:newarr){
			System.out.print(a+" ");
		}
	}
}

结果为:

Java数组——去掉0元素合成新数组_●  Java基础篇