新找到的最方便的写法,如果我理解有偏差,或者大家有更好的方法可以评论指出,共同进步~
这里生成的随机数只有大写,可以通过修改slese中的itmp = rnd2.nextInt(26) + 65;具体的26和65数值改成小写字母或大小写混合.
Random rnd = new Random();
Random rnd2 = new Random();
String randStr = "";
String ctmp = "";
int itmp = 0;
for (int i = 0; i < 4; i++) {
if((rnd2.nextInt(2)+1)==1)//要么产生字母要么产生数字[0,2)只代表一个选择
{
//生成0~9的ASCII码
itmp = rnd2.nextInt(10) + 48; //(0~9:48~58)
ctmp = String.valueOf((char) itmp);
}
else
{
// 生成A~Z的字母(ascll码)
itmp = rnd2.nextInt(26) + 65; //(A~Z:65~91)
ctmp = String.valueOf((char) itmp);
}
randStr += ctmp;
}
<个人代码收集博-----------来自dujie>