java题求代码,4、现在有如下的一个数组: int oldArr[]={1,3,4,5,0,

java题求代码,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}

class NewArray {
 public static void main (String[] args) {
  int [] a = {1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5};
  // 定义一个新数组
  int [] b = new int[7];
  // 定义一个变量j,作为数组b的下标
  int j = 0;
  for (int i = 0; i < a.length; i++) {
   // 判断不为0的元素
   if (a[i] != 0) {
    // 若不为0,存入新的数组b
    b[j] = a[i];
    // b的下标加1
    j++;
    
   } 
   
  }
  // 循环打印新的数组b
  for (int i = 0; i < b.length; i++) {
   System.out.print(b[i] + " ");
  }
 }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-07

练习

import java.util.Arrays;
public class MainTest {
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[]=Arrays.stream(oldArr).filter(e->e!=0).toArray();
System.out.print(Arrays.toString(newArr));
}
}

[1, 3, 4, 5, 6, 6, 5, 4, 7, 6, 7, 5]

本回答被网友采纳
第2个回答  2018-04-02
public class Demo17 {
public static void main(String[] args) {
int j=0;
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int newArr[]=new int [oldArr.length];
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
newArr[j]=oldArr[i];//元素为0的不存入newArr
j++;
}
}
for(int m:newArr){
if(m==0){
break;
}
System.out.print(m+" ");}
}
}
相似回答