网问答>>为什么这些代码输出的是312457098,没有去掉另一个零?
问题
已解决

为什么这些代码输出的是312457098,没有去掉另一个零?

时间:2020-07-14 14:20:06
public class StudyArraysLife { public static void main(String []args){ int [] arrays = {3,1,2,4,0,5,7,0,9,8,0,10}; int index = 0; int index2 = 0; int index3 = 0; int num = 0; int num2 = 0; int num3 = 0; for(int i=0;iarrays.length;i++){ if(num==arrays[i]){ index = i; break; } } for(int i=index+1;iarrays.length;i++){ if(num2==arrays[i]){ index2 = i; break; } } for(int i=index2+1;iarrays.length;i++){ if(num3==arrays[i]){ index3 = i; break; } } System.out.println("第一个索引"+index+"第二个索引"+index2+"第三个索引"+index3); int [] arrays2 = new int[index]; int [] arrays3 = new int[index2-index-1]; int [] arrays4 = new int[index3-index2-1]; int [] arrays5 = new int[arrays.length-index3-1]; int [] arrays6 = new int[arrays2.length+arrays3.length+arrays4.length+arrays5.length]; for(int i=0;iarrays2.length;i++){ arrays2[i] = arrays[i]; } int addone = index+1; for(int i=0,j=addone;iarrays3.length;i++,j++){ arrays3[i] = arrays[j]; } int addindex2 = index2+1; for(int i=0;iarrays4.length;i++){ arrays4[i] = arrays[addindex2]; addindex2++; } int endadd = index3+1; for(int i=0,j=endadd;iarrays5.length;i++,j++){ arrays5[i] = arrays[j]; } for(int i=0;iarrays2.length;i++){ arrays6[i] = arrays2[i]; } for(int i=0;iarrays3.length;i++){ arrays6[index] = arrays3[i]; index++; } for(int i=0;iarrays4.length;i++){ arrays6[index2] = arrays4[i]; index2++; } /*for(int i=0;iarrays5.length;i++){ arrays6[index3] = arrays5[i]; index3++; }*/ for(int i=0;iarrays6.length;i++){ System.out.println(arrays6[i]); } }}
最佳回答
你这个在这个位置index=6这个位置没赋值,默认是0直接出去了,然后你下一圈循环从7开始的,所以你这个位置多出来个0,并不是原来的字符串没去掉,而是没赋值导致的
时间:2020-07-14 14:20:07
本类最有帮助
Copyright © 2008-2013 www.wangwenda.com All rights reserved.冀ICP备12000710号-1
投诉邮箱: