Random类和UUID以及验证码的生成

一、介绍与测试

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截取的验证码+所有字符中的随机验证码
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值