/*
去掉数组中的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]);
}
}
}
转载于:https://blog.51cto.com/11900208/1866035