// 使用set集合的特性
static int[] check(int[] result, int[] input) {
// flag[0]记录字符对个数;flag[1]记录位置对个数
int flag[] = new int[2];
// input为用户输入的数据
for(int i = 0; i <= input.length - 1; i++) { // 用户输入的数据
for(int j = 0; j <= result.length - 1; j++) {
if(input[i] == result[j]) {
flag[0]++;
if(i == j) {
flag[1]++;
}
break; // 防止结果重复
}
}
}
return flag;
}
//使用开关
public static char[] generate(){
char[] chs = new char[5];
char[] letters = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
'W', 'X', 'Y', 'Z' }; //随机字符范围
boolean[] flags = new boolean[letters.length]; //开关数组(与letters数组相对应)
for(int i=0;i<chs.length;i++){ //遍历随机字符数组
int index;
do{
index = (int)(Math.random()*letters.length); //0到25的随机数
}while(flags[index]==true); //当下标对应的开关为true时,表示已存过,应重新生成index
//当下标对应的开头为false时,表示未存过,则index可用,do...while结束
chs[i] = letters[index]; //基于index下标到letters中获取字符,并赋值给chs的每一个元素
flags[index] = true; //修改index下标对应的开关为true,表示已存过
}
return chs;
}