要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,输出生成的新数组,可是我的报错,,求解答,程序越简单越好,谢谢各位大神了

public class Demo5 {


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};

        for(int i=0;i<oldArr.length;i++){

        if(oldArr[i]==0){

        continue;

        }

        int newArr=oldArr[i];

       

       

        }

       

        System.out.println("int newArr[]={"+newArr+"}");


皓婆子
浏览 9099回答 5
5回答

利他

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 + " ");         }     } }

职场小菜鸡

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]+" "); } }

yanrun

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 + " ");  } }

皓婆子

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,啊

donlv

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++;            }     }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java