1、生成要用的类及方法
import java.util.Arrays;
import java.util.Random;
public
class Util {
/**
* 返回随机生成的球
* @param scope 红色球范围(1-33) 蓝色球(1-16)
* @param type 用于标识是产生红色球还是蓝色球 red blue
* @return
*/
public String getBar(){
int[] reds = new int[6];
int[] blues = new int[1];
String[] blueBars = new String[1];
String[] redBars = new String[6];
int Index = 0;
// 取得球
blues[0] =getPerBar(17);
blueBars = addZero(blues);
// 取得红色球
for(int i=0;i<6;i++){
int redBar = getPerBar(34);
if(i==0){
reds[Index++] = redBar;
}else{
if(judgeIsSameNum(redBar, reds, Index-1)){
i--;
}else{
reds[Index++] = redBar;
}
}
}
Arrays.sort(reds);
redBars = addZero(reds);
return printResult(redBars, blueBars);
}
/**
* 将生成的随机数加0;
* @param result
* @return
*/
public String[] addZero(int[] result){
String[] str = new String[result.length];
int index = 0;
for(int i=0;i<result.length;i++){
if(result[i]<10){
String temp = "0"+result[i];
str[index++] = temp;
}else{
str[index++] = String.valueOf(result[i]);
}
}
return str;
}
/**
* 每次随机产生一个数并将结果返回
* @param scope
* @return
*/
public int getPerBar(int scope){
int temp = new Random().nextInt(scope);
if(0==temp){
temp = getPerBar(scope);
}
return temp;
}
/**
* 判断前面生成的数据与当前生成的数据是否有相同的 如果有相同的返回true,如果不相同返回false;
* @param num 刚生成的数据
* @param nums 已经添加了数据的数组
* @param endIndex 数组中结束标记
* @return
*/
public boolean judgeIsSameNum(int num,int[] nums,int endIndex){
boolean isSameNum = false;
for(int i=0;i<endIndex;i++){
if(num==nums[i]){
isSameNum = true;
break;
}
}
return isSameNum;
}
/**
* 返回生成的结果
* @param redBars
* @param blueBars
* @return
*/
public String printResult(String[] redBars,String[] blueBars){
StringBuffer sb = new StringBuffer();
for(int i=0;i<redBars.length;i++){
if(i != redBars.length-1){
sb.append(redBars[i]).append(" ");
}else{
sb.append(redBars[i]).append(" + ");
}
}
sb.append(blueBars[0]);
return sb.toString();
}
}
2、在主方法里调用
public class TestMain {
public static void main(String[] args) {
String result = new Util().getBar();
System.out.println(result);
}
}