A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*要求:
现在有如下的一个数组: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}
最后遍历两个数组要求格式如下:
原数组为:{1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
去掉0之后新数组为:{1,3,4,5,6,6,5,4,7,6,7,5}
*/
/*思路;
1.确定出原数组不为零的个数,作为新数组的长度
2.从原来的数组中取出内容,并将其赋予给新开辟的数组
*/
public class FeiNaoZiDemo{
        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 num=0;
                for(int i=0;i<oldArr.length;i++){
                        if(oldArr[i]!=0){
                                num++;
                        }
                       
                }
                //定义一个int类型的新数组, 用来存储原数组不为0的元素
                int[] newArr=new int[num];
                //从原来的数组之中取出内容,将其赋给新的数组;
                int foot =0;//控制新的数组的角标
                for(int i=0;i<oldArr.length;i++){
                        if(oldArr[i]!=0){
                                newArr[foot++]=oldArr[i];//把原数组不为零的元素赋给新数组
                        }
                       
                }
                //打印两个数组
                //遍历原数组
                String oldTemp ="原数组为:{";
                for(int i = 0;i<oldArr.length;i++){
                        if(i!=(oldArr.length-1)){
                                oldTemp+=oldArr[i]+",";//数组中最后一个元素不加“,”
                        }else{
                            oldTemp+=oldArr[i]+"}";
                        }
                       
                }
               
                System.out.println(oldTemp);
                //遍历新数组
                String newTemp ="去掉0之后的新数组为:{";
                for(int i=0;i<newArr.length;i++){
                        if(i!=(newArr.length-1)){
                                newTemp+=newArr[i]+",";
                               
                        }else{
                            newTemp+=newArr[i]+"}";
                        }
                       
                }
               
                System.out.println(newTemp);
               
        }
       
       
       
       
       
}

2 个回复

倒序浏览
思路就是:创建一个新的数组,然后循环遍历旧的数组,判断是否不为0,是就把他放到新的数组里面去。最后用for循环打印出两个数组就好了,理解一下不难的
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马