/**
* 随机生成4位不重复的数
* @return
*/
public static int randomNum() {
List<Integer> list = new LinkedList<Integer>();
for (int i=0; i<10; i++) {
list.add(i); //把数字0-9放入集合
}
//取第一个不为0的数字
//因为上面知道0在头位置,所以随机取1位置以后的一个数字
int index = (int)(Math.random()*(list.size()-1)) + 1; //随机位置
int data = list.remove(index); //取出随机位置的数字,并把数字从集合中删除,这样再取就不会重复
Collections.shuffle(list); //随机打乱list的元素
for (int i=0; i<3; i++) { //从集合中取3个数字
data = data*10 + list.get(i);
}
return data;
}
/**
* 随机生成指定位数的随机数(没有判断生成的数字中有无相同)
* @param digitStr 如果要生成一位digitStr=“#”、两位digitStr=“##”、以此类推
* @param digitNum 如果要生成1位digitNum=10、两位digitNum=100、以此类推
* @return
*/
public static int randomNum_(String digitStr, int digitNum) {
DecimalFormat df = new DecimalFormat(digitStr);
String tempRandNum = df.format(Math.random()*digitNum);
return Integer.parseInt(tempRandNum);
}