双色球实例,用boolean数组做标记,随机抽取不重复的球

来源:互联网 发布:逆战刷枪软件2016 编辑:程序博客网 时间:2024/05/22 01:44

package day06;
import java.util.Arrays;
import java.util.Random;
public class DoubleBall {
 
 public static void main(String[] args) {
  System.out.println(create());
 }
 //产生一组双色球号码
 public static String create(){
  String[] redPoll=new String [33];//默认值为null
  for(int i=0;i<redPoll.length;i++){
   char[] ch={'0','0'};
   String s=Integer.toString(i+1);//"1",将数字转换为相应的字符串
   char[] num=s.toCharArray();//转换为字符数组 {'1'}
   System.arraycopy(num, 0, ch, ch.length-num.length, num.length);
   String ball=new String(ch);
   redPoll[i] =ball;
  }
    //蓝球池
  String[] blue=("01,02,0,3,04,05,06,07,08,09,10,11," +
    "12,13,15,16").split(",");//将字符串以","切开
  boolean [] used=new boolean[redPoll.length];
  Random r=new Random();
  String[] all=new String[7];
  //产生6的不同的随机数
  for(int i=0;i<6;i++){
   int idx;
   do{
    idx = r.nextInt(redPoll.length);// 0~32
   }while(used[idx]);
    used[idx]=true;//标记使用
    all[i]=redPoll[idx];//取出未使用的红球
  }
  all[all.length-1]="99";//一定是最后一个
  Arrays.sort(all);//可以对int,byte,char,long,String类型数组排序
  all[all.length-1]=blue[r.nextInt(blue.length)];//取出一个蓝球,放在最后
     return Arrays.toString(all);
 }
}