/* 去掉数组中的0元素 */ public class TestFour{ 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 length=0;//获取新数组的长度 for(int num:oldArr) { if(num!=0) length++; } int []newArray=new int[length]; //以下是此程序的精妙之处 int size=0; for(int n:oldArr) { if(n!=0) { newArray[size++]=n; } } for(int n:newArray) { System.out.println(n); } } }
此程序的精妙之处在于:结合增强式for循环,给新数组赋值。。。。。。
以下是我第一次写的此题的循环
/* 4.合并数组操作: 现有如下一个数组:int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组, 生成的新数组为:int newArr [] ={1,3,4,5,6,6,5,4,7,6,7,5} */ public class TogetherArray{ public static void main(String[]args) { int arrayLength=0; int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; System.out.println("合并前的数组:"); for(int i=0;i<oldArr.length;i++) { System.out.println(oldArr[i]); } //实现数组的合并 togetherArr(oldArr); } //实现数组的合并 public static void togetherArr(int []b) { int m = 0;//实现赋值计数 int n = b.length;//计数newArr的长度 int i = 0; for(i=0;i<b.length;i++) { if(b[i]==0) n--; } //创建新函数接收大于零的数 int[] c=new int[n]; //实现赋值 for(i=0;i<b.length;i++) { if(b[i]!=0) { c[m]=b[i]; m++; } } System.out.println("合并后的数组"); for(m=0;m<c.length;m++) { System.out.println(c[m]); } } }