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;
    }
}

猜你喜欢

转载自blog.csdn.net/AKALXH/article/details/116661334