程序代码如下:想实现checkebox_s数组和s数组的内容的随机组合并放到f数组当中,可是如果我的s数组人数小于3人时候则会出现bug,程序被中断,而且奇怪的是我的checkbox的信息被保存了下来,即使我没有选中该复选框,也能够得到该复选框的内容,求高手解救
String[] s=new String[100];
String[] checkebox_s=new String[100];
String[] g=new String[100];
String[] f=new String[100];
for(int i=0;i<=info.length();i++)
{
s=info.split(",");
}
for(int j=0;j<=u5.length();j++)
{
checkebox_s=u5.split(",");
}
String r=null;
Random ran=new Random();
int index;//=(int)ran.nextInt(s.length);
try{for(int d=0;d< f.length;d++)
{
index=(int)ran.nextInt(s.length);
r=s[index];
this.show4.append(r) ;
for(int k=0;k<checkebox_s.length;k++)
{
if(g[k]==r )
{
k--;
//d--;
break;
}else if(k==d )
{
g[k]=r;
if(checkebox_s[k]==null)
{
checkebox_s[k]="睡觉休息";
}
f[k]= "判处 "+g[k]+" 负责 "+checkebox_s[k];
this.show3.append(f[k]) ;
//this.show4.append(f[k]) ;
break;
}
}
}
}catch( Exception e)
{
e.printStackTrace();
}
------解决方案--------------------
代码比较乱。
其实你可以换个思路,算法和代码会更清晰
对于s和checkebox_s分别用随机数进行打乱
然后让s[0]负责checkebox_s[0]
s[1]负责checkebox_s[1]
s[2]负责checkebox_s[2]
....
s[n]负责checkebox_s[n]
如果s数组较长,则超出checkebox_s个数的部分,什么事都不干,也就是睡觉休息就是了