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};
能给个思路吗?
非常感谢 展开
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};
能给个思路吗?
非常感谢 展开
5个回答
展开全部
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有多少个,出现在那里
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
利用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];
}
}
追答
定义数组的时候可以不指定数组的长度。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};int newArr[]={};循环 判断不为0时,存入newArr;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
循环odlArr中的每一个数值,判断该数值是否等于0如果等于,就继续,如果不等于就把数值放到newArr中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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]);
}
}
这容易懂 没有错
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]);
}
}
这容易懂 没有错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询