官方文档: https://www.hutool.cn/docs/#/core/工具类/随机工具-RandomUtil

1.原生Java代码实现:

private static final String SYMBOLS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; // 数字和26个字母组成
private static final Random RANDOM = new SecureRandom(); // SecureRandom是加密且线程安全的

/**
 * 获取长度为 6 的随机字母+数字
 * @return 随机数字
 */
public static String getRandomNumber() {
    char[] nonceChars = new char[16];  //指定长度为6位/自己可以要求设置

    for (int index = 0; index < nonceChars.length; ++index) {
        nonceChars[index] = SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
    }
    return new String(nonceChars);
}


2.Hutool工具实现:

public static void main(String[] args) {
    // 小写字母+数字,例:d2qdw920d5
    String randomString1 = RandomUtil.randomString(10);
    // 大写字母+数字,例:I6R7Q38JWC
    String randomStringUpper = RandomUtil.randomStringUpper(10);
    // 只含有abc,例:bcccbcccac
    String randomString2 = RandomUtil.randomString("abc", 10);
    // 大写字母+小写字母+数字,例:qf0Vr2TK3J
    String randomString3 = RandomUtil.randomString("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", 10);
    // 数字,例:8
    char randomNumber1 = RandomUtil.randomNumber();
    // 小写字母+大写字母中,不含有0123456789,例:nmjjyscmvq
    String randomStringWithoutStr = RandomUtil.randomStringWithoutStr(10, "0123456789");
    // 生成小写字母+数字的其中一个字符,例:m
    char randomChar1 = RandomUtil.randomChar();
    // 生成0123456789中一个字符,例:7
    char randomNumber2 = RandomUtil.randomNumber();
    // 生成-!?中一个字符,例:?
    char randomChar2 = RandomUtil.randomChar("-!?");
}

整理完毕,完结撒花~

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐