我是先用math类的random方法生成数字的随机数,再将某些位的数字随机替换成大小写的字母,这个方法比较麻烦,哪位有更好的实现方法?
关注ing.......
如果用你的这个方法可以生成你满意的随机码,那么这个方法就已经是最好
的了。但如果结果不是令人满意的话,可以考虑别的算法。
import java.util.*;
public class test {
public bbb() {
}
public static void main(string[] args) {
test test1 = new test();
system.out.println(math.abs(new random().nextint())%100000000);
}
}
发表者:wellsoon
long nowtime = new java.util.date().gettime();
//取当前的时间作为一个随机的参数
string rodomtext= omd5.getmd5ofstr(string.valueof(nowtime)+"rodom").substring(0,8);//md5后再取前8位.
这个字符串的随机性 非常高了。
发表者:caina3
/**
* 方法说明:
* 该函数获得随机数字符串
* @param ilen int :需要获得随机数的长度
* @param itype int:随机数的类型:0:表示仅获得数字随机数;1:表示仅获得字符随机数;2:表示获得数字字符混合随机数
* @since 1.0.0
*/
public static final string createradom(int ilen,int itype){
string strrandom="";//随机字符串
random rnd = new random();
if (ilen<0){
ilen=5;
}
if ((itype>2) ||(itype<0)){
itype=2;
}
switch (itype) {
case 0 :
for (int iloop=0;iloop<ilen;iloop++){
strrandom += integer.tostring(rnd.nextint(10));
}
break;
case 1 :
for (int iloop=0;iloop<ilen;iloop++){
strrandom += integer.tostring((35-rnd.nextint(10)) ,36);
}
break;
case 2 :
for (int iloop=0;iloop<ilen;iloop++){
strrandom += integer.tostring(rnd.nextint(36) ,36);
}
break;
}
return strrandom;
}