Java数组怎么初始定义不定的长度?

我的程序是这样的,为了去旧数组中的“0”,把它放到新数组中去。。publicclassexercise03{publicstaticvoidmain(Stringargs... 我的程序是这样的,为了去旧数组中的“0”,把它放到新数组中去。。
public class exercise03{ public static void main(String args[]){ int oldarr[]={1,3,5,0,0,6,7,8,0,9,0,5,6}; int newarr[]=null; newarr=new int[newarr.length-1]; /*问题在这里。。请问新的数组长度怎么定义。。现在这样子会报错。。。Exception in thread "main" java.lang.NullPointerException at exercise03.main(exercise03.java:5) */ int x=0; for (int i=0;i<oldarr.length;i++) { if (oldarr[i]!=0) {System.arraycopy(oldarr,i,newarr,x,1); x=x+1;} } System.out.print("int newarr[]={"); for (int j=0;j<newarr.length-1;j++) System.out.print(newarr[j]+","); System.out.print(newarr[newarr.length-1]+"}");
}
}
展开
 我来答
匿名用户
2013-04-02
展开全部
这个数组int newarr[]=null你是声明为空的肯定会报错啊。有两个方法第一:你先循环遍历int oldarr[]={1,3,5,0,0,6,7,8,0,9,0,5,6}这个数组看它有几个数是零在添加在newarr中。第二:你可以不要用数组做用集合List集合来做方便多了不要考虑数组长度。
hdparrot
推荐于2017-05-16 · TA获得超过2404个赞
知道小有建树答主
回答量:1385
采纳率:0%
帮助的人:1151万
展开全部
JAVA没法定义不定长的数组,要么声明为NULL,要么指定其长度。你可以用集合ArrayList来解决这个问题,如果没学过集合,可以先遍历原数组,得到0的个数后,再定义新数组。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hesper0
2013-04-01 · TA获得超过512个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:232万
展开全部
public class exercise03 {
public static void main(String args[]) {
int oldarr[] = { 1, 3, 5, 0, 0, 6, 7, 8, 0, 9, 0, 5, 6 };
int newarr[] = null;
newarr = new int[oldarr.length - 1];
int x = 0;
for (int i = 0; i < oldarr.length; i++) {
if (oldarr[i] != 0) {
System.arraycopy(oldarr, i, newarr, x, 1);
x = x + 1;
}
}
System.out.print("int newarr[]={");
for (int j = 0; j < newarr.length - 1; j++)
System.out.print(newarr[j] + ",");
System.out.print(newarr[newarr.length - 1] + "}");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rascal_hu
2013-04-01
知道答主
回答量:25
采纳率:0%
帮助的人:22.7万
展开全部
先把你的目录数据放到一个arraylist里,然后再调用 list.toArray就可以转化为数组了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙锅_1号
2013-04-01 · TA获得超过611个赞
知道小有建树答主
回答量:366
采纳率:0%
帮助的人:334万
展开全部
给你个思路,你自己定义一个整型数count用for循环 算出有多少个非零的数,这个就是你要开数组的长度,如果要开个不定长度的数组只能用java类集来做了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式