/**
*以前买了一张双色球的彩票,看到了上面的数字,好像可以用程序实现!
*就用java实现了一下,以后买双球就可以自己机打了!
*红球:1~~~33:取出6个,不能重复,按从小到大的顺序输出
*蓝球:1~~~16:取出1个。放在红球后面输出
*/
import java.util.*;
class DoubleColorBall
{
public static void main(String[] args)
{
System.out.println(create());
}
public static String create()
{
String[] red = new String[33];
//System.out.println(redPoll[1]);//null
for(int i=0; i<red.length;i++)
{
char[] ch = {'0','0'};//定义字符数组,初始化位00
String s = Integer.toString(i+1);//{"1"...."33"}
char[] num = s.toCharArray();//将{"1"...."33"}变成对应的{'1'....'33'}
System.arraycopy(num,0,ch,ch.length-num.length,num.length);//通过数组赋值的方式完成1变成01,2变成02
String ball = new String(ch);
red[i] = ball;
}
String[] blue = "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16".split(",");
boolean[] used = new boolean[red.length];//给每个红球定义一个标记,当该球被去除时,就将对应标记设置成true(表示已经使用了)
Random r = new Random();
String[] all = new String[7];
for(int i=0;i<6;i++)
{
int idx;
do
{
idx = r.nextInt(red.length);//0~~32
}
while (used[idx]);//如果使用了,继续找下一个
used[idx] = true;//标记使用了
all[i] = red[idx];//取出一个未使用的红球
}
all[all.length-1] = "99";//因为需要先将获得的红球排序,所以为了将最后一个位置保留给蓝球,所以先用99占位,这样即使排序最后一位仍然是99
Arrays.sort(all);
all[all.length-1] = blue[r.nextInt(blue.length)];//用获得的蓝球将99覆盖
return Arrays.toString(all);
}
}
|