一、介绍与测试
Random:产生随机数
UUID:通用唯一识别码
目的是让分布式系统中的所有元素,都能有唯一的辨识信息。
根据当前时间和电脑网卡,生成一段字符。
//Radom类
import java.util.*;
public class RandomTest
{
public static void main(String[] args)
{
Random r = new Random();
//(1)生成不同类型的随机数
System.out.println(r.nextInt());
System.out.println(r.nextDouble());
System.out.println(r.nextBoolean());
//(2)相同的种子,生成的随机数是一样的
Random r2 = new Random(10);//10为种子,传参。
System.out.println(r2.nextInt());
//(3)生成34-179之间的随机数:34+[0 145)
//nextInt(145) 随机生成0到145之间的随机数
Random r3 = new Random();
System.out.println(34 + r3.nextInt(145));
//(4)UUID:通用唯一识别码
//在一台机器上生成的数字
//根据当前时间和电脑网卡,生成一段字符,所以生成的都不一样
String uuid = UUID.randomUUID().toString();//并利用toString()将其转成字符串
System.out.println(uuid);
}
}
二、五位随机验证码的生成
//生成验证码,含5位随机数
import java.util.*;
public class ListError
{
public static void main(String[] args)
{
//方法一:UUID生成的是16进制,可截取其中5位
String res = UUID.randomUUID().toString();
System.out.println(res);//输出UUID
String res2 = res.substring(0,5);//截取UUID码的0~4位
System.out.println(res2);//输出验证码
//方法二:从所有的字符中随机取5个出来
//利用 可变字符串 和 指定范围内的随机数
String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
str = str + str.toLowerCase()+"0123456789";//包含26个字母的大小写+数字,共62个
StringBuilder sb = new StringBuilder(5);
for(int i=0;i<5;i++)
{
int index = new Random().nextInt(str.length());//在0-str.length()之间取随机下标
char ch = str.charAt(index);
//字符串拼接
sb.append(ch);
}
System.out.println(sb);
}
}
运行结果:UIDD+UIDD截取的验证码+所有字符中的随机验证码