封装关于随机串的工具类

封装关于随机串的工具类

image-20210316212142991

代码:

import java.util.Random;

public class RandomString {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(getChar('a', 'x'));
		System.out.println(getSmallChar());
		System.out.println(getBigChar());
		System.out.println(getDigtalNum());
		System.out.println(getSmallCharaStr(8));
		System.out.println(getBigCharaStr(6));
		System.out.println("混合随机字符串"+getMixStr(5));
		System.out.println(getDigtalNumStr(5));
	}

	// 生成两个字符之间的随机字符[a,z]
	public static char getChar(char a, char b) {
		if (a < b) {
			return (char) (a + (int) (Math.random() * (b - a + 1)));
		} else {
			return (char) (b + (int) (Math.random() * (a - b + 1)));
		}
	}

//	生成一个小写字母的字符[a,b]
	public static char getSmallChar() {
		return getChar('a', 'z');
	}

//		生成一个大写字母的字符
	public static char getBigChar() {
		return getChar('A', 'Z');
	}

//		 生成一个数字字符
	public static char getDigtalNum() {
//			 char res;
//			 Random r = new Random();
//			 res = (char)('0'+ r.nextInt(10));
//			return res;
		return getChar('0', '9');
	}

//		 生成一个随机数字串
	public static String getDigtalNumStr(int len) {

		StringBuffer sb = new StringBuffer();
		Random r = new Random();
		for (int i = 0; i < len; i++) {
			sb.append(getDigtalNum());
		}
		return sb.toString();
	}

//		 生成一个随机小写字母串
	public static String getSmallCharaStr(int len) {
		StringBuffer sb = new StringBuffer();
		Random r = new Random();
		for (int i = 0; i < len; i++) {
			sb.append(getSmallChar());
		}
		return sb.toString();
	}

//		 生成一个随机大写字母串
	public static String getBigCharaStr(int len) {
		StringBuffer sb = new StringBuffer();
		Random r = new Random();
		for (int i = 0; i < len; i++) {
			sb.append(getBigChar());
		}
		return sb.toString();
	}

//		 生成一个由大小写字母和数字组成的串
	public static String getMixStr(int len) {
		StringBuffer sb = new StringBuffer();
		Random r = new Random();
		for (int i = 0; i < len; i++) {
			int ran = (int) (Math.random() * 3);
			switch (ran) {
			case 0:
				sb.append(getBigChar());
				break;
			case 1:
				sb.append(getSmallChar());
				break;
			case 2:
				sb.append(getDigtalNum());
				break;
			}

		}
		return sb.toString();
	}
}

总结:

1.Math.Random

默认生成一个double类型的小数,可精确到小数点后16位 ,[0,1)

//Math.random类生成一个≥0小于1的随机小数,精度根据接收它的变量的基本类型确定
				double i=Math.random();
		System.out.println(i);

image-20210316223528325

Random类

1.无参数的nextInt()方法 随机平均生成一个小于2的32次方的数,也可能生成负数 [0,2^32)

Random ran =new Random();
		//random.nextint(); 随机平均生成一个小于2的32次方的数,也可能生成负数
		int j=ran.nextInt();
		System.out.println(j);

image-20210316223602310

2.有参数的nextInt方法 nextInt(max)为一个上限值

Random ran =new Random();
		//有参数的nextInt方法 随机生成一个int类型的数 大于等于0小于括号中的参数值,
		//例如此方法生成一个[0,10)int类型数
		int j1=ran.nextInt(10);
		System.out.println(j1);

image-20210316223634076

3.nextFloat( );伪随机地生成并返回一个从 0.0f(包括)到 1.0f(包括)范围内均匀选择(大致)的 float 值。
可精确到小数点后八位

image-20210316223648426

4.NextDouble( );随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值
相当于Math.Random方法。

2.文档级的注释

	/* 生成两个字符a,b之间的随机字符[a,b],结果包含ab
	 * parameter a 范围较小的边界
	 * parameter b 范围较大的边界
	 * @return a~b之间的一个随机字符,包含a,b
	 * */
	public static char getChar(char a, char b) {
		if (a < b) {
			return (char) (a + (int) (Math.random() * (b - a + 1)));
		} else {
			return (char) (b + (int) (Math.random() * (a - b + 1)));
		}
	}
posted @ 2021-03-17 17:18  记录学习Blog  阅读(46)  评论(0编辑  收藏  举报