java基础练习题

现有如下一个数组;intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};要求将以上数组中的0去掉,并将不为0的值存入一个新数组中,结... 现有如下一个数组;

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

能给个思路吗?
非常感谢
展开
 我来答
这个大神有点牛
2015-11-11 · 超过25用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:36.6万
展开全部
		int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
//建立一个list集合
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i]>0) {
list.add(oldArr[i]);
}
}
int newArr[] = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
newArr[i] = list.get(i);
}
//另一种写法,不过返回的应用型数据类型 但是跟int也差不多
Integer listArr [] = list.toArray(new Integer[list.size()]);
追问
这个答案很好,想问一问,有没有不用List集合,只用数组的解决方案呢?如果有我想学习学习,非常感谢呢
追答
循环内,把大于0的数字用字符串拼接,数字之间用,分割,然后你在把这串字符串用split方法切割成数组!因为你不知道0有多少个,出现在那里
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
西班牙比利亚
2015-11-11 · TA获得超过536个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:66.8万
展开全部

利用for循环来得到oldArr里的每一个元素,判断这个元素是否是0,是0就放到新数组里:

int newArr[] = new int[];
for(int i = 0;i<oldArr.length;i++){
    if(oldArr[i]==0){
        newArr[newArr.length] = oldArr[i];
    }
}

new Arr就是新数组。我没用eclipse写,不知道有没有错误,你试一下吧,思路就是这样。上一个回答的有点把简单问题复杂化了。

更多追问追答
追问
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int newArr[] = new int[];//之前练习的时候也不清楚这里的数组长度如何解决,我再想想,谢谢
for(int i = 0;i<oldArr.length;i++){
if(oldArr[i]==0){
newArr[newArr.length] = oldArr[i];
}
}
追答
定义数组的时候可以不指定数组的长度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
longxinwu888
2015-11-11 · TA获得超过134个赞
知道小有建树答主
回答量:171
采纳率:100%
帮助的人:101万
展开全部
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};int newArr[]={};循环 判断不为0时,存入newArr;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hero_wcf
2015-11-11 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:90.3万
展开全部
循环odlArr中的每一个数值,判断该数值是否等于0如果等于,就继续,如果不等于就把数值放到newArr中
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
112sssbaby
2019-04-19
知道答主
回答量:1
采纳率:0%
帮助的人:738
展开全部
package day415;
import java.util.Scanner;
public class IfDemo {
public static void main(String[] args) {
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){
oldArr[i]=oldArr[i];
System.out.println(oldArr[i]);
}
}
这容易懂 没有错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式