public String randomNum() {
Calendar c = Calendar.getInstance();
int s = (c.get(Calendar.MONTH) * 10000)
+ (c.get(Calendar.SECOND) * 1000) + c.get(Calendar.MILLISECOND);
Random a = new Random();
a.setSeed(s);String random = a.nextFloat() + "";String finalNum = "DI" + random.substring(2, 9);
return finalNum;
}
这是我的获取随机数的方法,但是很容易报错。各位大大们帮忙改下,怎么样获取随机数里的7为而不产生重复、
Calendar c = Calendar.getInstance();
int s = (c.get(Calendar.MONTH) * 10000)
+ (c.get(Calendar.SECOND) * 1000) + c.get(Calendar.MILLISECOND);
Random a = new Random();
a.setSeed(s);String random = a.nextFloat() + "";String finalNum = "DI" + random.substring(2, 9);
return finalNum;
}
这是我的获取随机数的方法,但是很容易报错。各位大大们帮忙改下,怎么样获取随机数里的7为而不产生重复、
Set set=new HashSet();
Random a=new Random();
while(set.length<7){
set.put(a.get(0,10));
}具体代码实现可能忘记了,这个只是逻辑,按照这个逻辑去实现就可以了,set里面存放的是不重复的东西,所以通过判断可以实现楼主要的功能。
所以7位随机数应该是: (long)(10000000-1000000)*rnd + 1000000 String random = String.valueOf((long)(a.nextFloat()*9000000) + 1000000);
所以可以这样获得7位的随机数:
Int r = randomObject.nextInt(999999) + 1000000;
简单利落明了!
还是3楼runffer_yang的答案正确。
抱歉。
Set set = new HashSet();
while (set.size() < 7) {
set.add(r.nextInt(10));
}
Object[] obj = set.toArray();
for (int i = 0; i < obj.length; i++) {
System.out.print(obj[i]);
}