class JudgeRadnumber {
public String input() {
String radNumber = ((int) (Math.random() * 8000 + 1000)) + "";
System.out.println("随机数 1:" + radNumber);
return radNumber;
}
/**
* 判断随机数中有没重复的数字
* @return
*/
public String judgeRadnumber() {
JudgeRadnumber j = new JudgeRadnumber();
String radNumber = input();
int n = 1;
int str[] = new int[4];
int par = Integer.parseInt(radNumber);
for (int i = 0; i <= 3; i++){
str[i] = Integer.parseInt((radNumber.substring(i, i + 1)));
}
while (str[0]==str[1]||str[0]==str[2]||str[0]==str[3]||str[1]==str[3]||str[1]==str[2]||str[3]==str[2]) {
System.out.println(str[0]==str[1]||str[0]==str[2]||str[0]==str[3]||str[1]==str[3]||str[1]==str[2]||str[3]==str[2]);
j.judgeRadnumber();
}
return radNumber;
}
}
这段代码运行时有时会报栈溢出的问题,原因是判断条件的错误,即使生成的四位数中每一位数字的值都不一样(即数组中的的每个数字不一样),判断条件也会为true,求解
|
|