5 回答
TA贡献1条经验 获得超1个赞
package com.bjlemon.task.day08; import java.util.Arrays; /** * @author 利他 * @version 1.0 * @date 2018/10/13 16:42 */ public class test { public static void main(String[] args) { //定义数组 int oldArr[] = {1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5}; //从小到大排序,0会排在最前面 Arrays.sort(oldArr); //统计原数组中第一个非0元素的下标 int index = 0; //统计原数组中0的个数 int zeros = 0; //遍历数组 for (int i = 0; i < oldArr.length; i++) { //如果当前元素等于0,计数加一,并跳出本次循环,否则第一个非0的元素为本次循环的次数,并跳出这个循环 if (oldArr[i] == 0) { zeros++; continue; } else { index = i; break; } } //定义新的数组,大小为旧数组的长度减去元素为0的个数 int[] newArr = new int[oldArr.length - zeros]; /* public static void arraycopy( Object src, //源数组 int srcPos, //源数组的起始位置 Object dest, //目标数组 int destPos, //目标数组的起始位置 int length //复制长度 ) */ //调用System.arraycopy()方法将原数组数组中的非0数据拷贝到新数组中 System.arraycopy(oldArr, index, newArr, 0, newArr.length); //循环输出newArr数组中的每个元素 for (int i : newArr) { System.out.print(i + " "); } } }
TA贡献1条经验 获得超1个赞
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 newarr[]=new int[oldarr.length]; int j=0; for(int i=0;i<oldarr.length;i++){ if(oldarr[i]!=0){ newarr[j]=oldarr[i]; j++; } } for(int k=0;k<j;k++){ System.out.print(newarr[k]+" "); } }
TA贡献317条经验 获得超240个赞
public static void main(String[] args) { int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; Arrays.sort(oldArr); //从小到大排序,0在最前面 int index = 0;//原数组中第一个非0元素的下标 int zeros = 0;//原数组中0的个数 for(int i = 0; i < oldArr.length; i++) { if(oldArr[i] == 0) { zeros++; continue; } else { index = i; break; } } int[] newArr = new int[oldArr.length - zeros]; System.arraycopy(oldArr, index, newArr, 0, newArr.length);//调用系统方法将原数组数组中的非0数据拷贝到新数组中 for(int i : newArr) { System.out.print(i + " "); } }
TA贡献4条经验 获得超0个赞
import java.util.Arrays;
public class Demo4_6_3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int newArr[]=new int[oldArr.length];
int k=0;
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
newArr[k]=oldArr[i];
k++;
}
}
System.out.println(Arrays.toString(newArr));
}
}
请问我这个程序输出怎么是1,3,4,5,6,6,5,4,7,6,7,5,0,0,0,0,啊
TA贡献13条经验 获得超2个赞
int o[]={1,3,4,5,0,0,6,6};
int n[]=new int[o.length];
int k=0; //用于计算n[]下标的变量
for(int i=0;i<o.length;i++){
if(o[i]!=0){ //判断原数组是否为0,不为0把原数据赋值给新数组
n[k]=o[i];
System.out.print(n[k]+"\t");
k++;
}
}
添加回答
举报