把数组中所有连续二个以上的0去掉,将结果存入一个新数组,在线等

zgycsmb 2013-07-02 01:51:52
完善下面的代码,
把数组中所有连续二个以上的0去掉,将结果存入一个新数组,如
0012010001----->1201

package day02;
public class B {
public static void main(String[] args) {
int[] srcArray={0,0,1,2,0,1,0,0,0,1};
int[] descArray=new int[50];
int i=0,j=0,count=0;
for(i=0;i<srcArray.length;){
count=0;
if(srcArray[i]!=0){
//(1)
i++;
}else{
while(i<srcArray.length&&(2)){
//(3)
i++;
}
if(count<2){
//(4)
}
}
}
for(i=0;i<j;i++){
System.out.println(descArray[i]);
}

}
}

大家帮我看下,thanks
...全文
416 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsshizhanab 2013-07-02
  • 打赏
  • 举报
回复
public class A { public static void main(String[] args) { int[] array = { 0, 0, 0, 1, 0, 1, 0, 0, 1, 2, 0, 1 }; Object[] getArray = getObject(array); for(int i = 0;i < getArray.length;i++) { System.out.print(getArray[i]+","); } } public static Object[] getObject(int[] array) { List<Integer> list = new ArrayList<Integer>(); Object[] getArray = new Object[array.length]; int temp = 0; for (int i = 0; i < array.length;) { if (array[i] == 0) { for (int j = i; array[j] == 0; j++) { temp = j; } if ((temp - i) >= 1) { i = temp + 1; } else { list.add(array[i]); i++; } } else { list.add(array[i]); i++; } } getArray = list.toArray(); return getArray; } } 我也写了一个。
lcf 2013-07-02
  • 打赏
  • 举报
回复
(1) descArray[j++]=srcArray[i] (2) srcArray[i] == 0 (3) count++ (4) descArray[j++]=0;
zgycsmb 2013-07-02
  • 打赏
  • 举报
回复
8楼的可以了,多谢
qq1109306709 2013-07-02
  • 打赏
  • 举报
回复
public class B { public static void main(String[] args) { int[] srcArray = { 0, 0, 1, 2, 0, 1, 0, 0, 0, 1 }; int[] descArray = new int[50]; int i = 0, j = 0, count = 0; for (i = 0; i < srcArray.length;) { count = 0; if (srcArray[i] != 0) { descArray[j++] = srcArray[i]; i++; } else { while (i < srcArray.length && (srcArray[i]==0)) { ++count; i++; } if (count < 2) { descArray[j++] = srcArray[i-1]; } } } for (i = 0; i < j; i++) { System.out.print(descArray[i]); } } }
lagel 2013-07-02
  • 打赏
  • 举报
回复
这个题还好吧,楼主应该能解出来的
zgycsmb 2013-07-02
  • 打赏
  • 举报
回复
这是一道企业笔试题,出来后,还是没写出来,大家帮我想下,把它写出来,多谢
lcf 2013-07-02
  • 打赏
  • 举报
回复
引用 3 楼 zgycsmb 的回复:
大家帮我看下,括号内有数字的行中,就是需增加的代码,
一看就是作业题来骗答案的。这些学生
zxj3039 2013-07-02
  • 打赏
  • 举报
回复
import java.util.*; public class Test { public static void main(String args[]){ int[] srcArray={0,0,1,2,0,1,0,0,0,1}; List<Integer> list = new ArrayList<Integer>(); for(int i=0;i<srcArray.length;i++){ if(srcArray[i]==0 && srcArray[i+1]==0){ if(srcArray[i+2]==0){ list.add(srcArray[i+3]); i = i+3; }else{ list.add(srcArray[i+2]); i = i+2; } }else{ list.add(srcArray[i]); } } Iterator<Integer> it = list.iterator(); while(it.hasNext()){ System.out.print(it.next()); } } }
zgycsmb 2013-07-02
  • 打赏
  • 举报
回复
大家帮我看下,括号内有数字的行中,就是需增加的代码,
zgycsmb 2013-07-02
  • 打赏
  • 举报
回复
最后一个1也在, 0012010001----->12011
zoeg 2013-07-02
  • 打赏
  • 举报
回复
最后一个1吃掉了?

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧