java42Random类,Date类,随机验证码迭代过程,UUID
1.Random类
随机生成某个整数
Random r = new Random();
System.out.println(r.nextInt());
伪随机数:第一次打印为随机,再次运行,数字将保持不变
Random r1 = new Random(10);
System.out.println(r1.nextInt());
随机输出34到179之间的数
分析:.nextInt(15)表示生成0到15之间的随机数
当输出最小为0时,只需加上34;
当输出最小为145时,也只需加上34
System.out.println(34 + new Random().nextInt(145));
2.UUID:通用唯一识别符(在一台机器上生成的数字)
生成规律:是结合当前的时间和每台机器上的网卡识别符生成的一段字符
String a =UUID.randomUUID().toString();
System.out.println(a);
【4b8fc3b2-89e9-473a-80d6-c791e4e90826】
3.日期类(需要导包[util包])
import java.util.Date;
public class date类 {
public static void main(String[] args) {
//获取当前的时间
Date date = new Date();
System.out.println(date);
//获取当前的毫秒值
long time = System.currentTimeMillis();
System.out.println(time);
//将毫秒值转换为当前的日期类型
Date date2 = new Date(time);
System.out.println(date2);
//中国日期
String d = date2.toLocaleString();
System.out.println(d);
//将日期转换为当前的毫秒值
System.out.println(date2.getTime());
}
}
当计算员工的工龄,年龄时类型都是date类
4.随即验证码
import java.util.Random;
import java.util.UUID;
public class 验证码 {
public static void main(String[] args) {
//UUID的数是随机的
String u = UUID.randomUUID().toString();
System.out.println(u);
//取其前五位
System.out.println(u.substring(0,5));//缺点,字母只到F,原因,UUID为十六进制编写
System.out.println("********************");
//改进:让系统在给定的字符串中随机输出任意字符。
String a = "ABCDEFGHIjKLMNOPQRSTUVWXYZ";
a = a + a.toLowerCase();
a = a + "0123456789";
System.out.println(a);
###
思路:
//先让其随机在字符串长度内截取一个字符(告知其位置)
//先知道字符串有多长
System.out.println(a.length());
//将其位置在字符串长度内随机
int a2 = new Random().nextInt(a.length());
//将随机位置和字符联系在一起
System.out.println(a.charAt(a2));
###
//若输入五位验证码,则循环五次
for(int i = 0;i < 5;i++) {
int a3 = new Random().nextInt(a.length());
System.out.print(a.charAt(a3));
}
}
}
在输入五位验证码处替换成更好的代码
//数据无论怎么改,地址都不会变(可变字符串)
StringBuilder sb = new StringBuilder();
for(int i = 0;i < 5;i++) {
int a2 = new Random().nextInt(a.length());
char res = a.charAt(a2);
sb.append(res);//类似于sb = sb + ch;
}
System.out.println(sb);