java 生成指定范围随机数 于 生成 大小写字母 数字 符号 随机成分字符串

随机字符串生成器

jar 依赖

实现代码 :

/**
 * @author LXH-404
 * @Classname RandomUtil
 * @Description 随机生成器
 */
public class RandomUtil {

    //大写字母字符池
    private final static String[] CAPITAL = {"A", "B", "C", "D", "E",
            "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
            "S", "T", "U", "V", "W", "X", "Y", "Z"};

    //小写字母字符池
    private final static String[] LOWERCASE = {"a", "b", "c", "d", "e",
            "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r",
            "s", "t", "u", "v", "w", "x", "y", "z"};

    //数字字符池
    private final static String[] NUMBER = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};


    /**
     * 随机生成指定位数 小写字母、大写字母和数字混合字符串
     *
     * @param length 指定位数
     * @return
     */
    public static String generateString(int length) {
        //参数校验
        if (length < 0) {
            return "-1";
        }

        StringBuilder sb = new StringBuilder();
        Random num = new Random();
        for (int i = 0; i < length; i++) {
            switch (generateNumber(1, 3)) {
                case 1:
                    sb.append(CAPITAL[num.nextInt(CAPITAL.length)]);
                    break;
                case 2:
                    sb.append(LOWERCASE[num.nextInt(LOWERCASE.length)]);
                    break;
                case 3:
                    sb.append(NUMBER[num.nextInt(NUMBER.length)]);
                    break;
            }
        }
        return sb.toString();
    }

    /**
     * 指定位数,以及指定成分组成的随机字符串生成
     *
     * @param length 位数
     * @param strPool 字符池
     * @return
     */
    public static String generateString(int length, String[]... strPool) {
        StringBuilder sb = new StringBuilder();
        Random num = new Random();
        for (int i = 0; i < length; i++) {
            // strPool随机选择
            int index = num.nextInt(strPool.length);
            // strPool字符随机选择
            sb.append(strPool[index][num.nextInt(strPool[index].length)]);
        }
        return sb.toString();
    }

    /**
     * 随机生成指定范围随机数
     * 提醒: (适用范围 min 大于0)
     *
     * @param min 最小值
     * @param max 最大值
     * @return
     */
    public static int generateNumber(int min, int max) {
        Random random = new Random();
        int num = random.nextInt(max) % (max - min + 1) + min;
        return num;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值