Java生成字母数字随机数

此篇博客介绍了如何使用Java编程实现生成一个随机数,特点是随机数以字母开头,随后跟随着数字。生成过程通过Random类和StringBuilder操作,适合用于密码生成或其他需要特定格式的随机数应用场景。

import java.util.Random;
/**
 * @author wj
 * @date 2021/4/29
 * @describe 生成随机数
 */
public class TestRandom {

    public String getRandom(int length) {

        StringBuffer sb = new StringBuffer();
        Random random = new Random();
        //todo 生成随机数类型
        int isChar = 0;  //todo 字母
        int isFigure = 0;  //todo 数字
        for (int i = 0; i <= length; i++) {
            //todo 生成随机的字母+数字字符串
            String charOrNum = random.nextInt(2) / 2 == 0 ? "char" : "figure";
            if (isChar >= 2) {
                charOrNum = "figure";
            }
            if (isFigure >= 6) {
                charOrNum = "char";
            }
            //todo 输出字母还是数字  忽略大小写
            if ("char".equalsIgnoreCase(charOrNum)) {
                sb.append((char) (random.nextInt(26) + 65));  //todo 强转字符
                isChar++;
            } else if ("figure".equalsIgnoreCase(charOrNum)) {
                sb.append(random.nextInt(10));
                isChar++;
            }

        }
        return sb.toString();
    }

	//todo 测试主方法
    public static void main(String[] args) {
        TestRandom tr = new TestRandom();
        System.out.println("随机数==" + tr.getRandom(7));
    }

}

随机生成字母在前,数字在后的随机数,具体多少为可自行设置

以下是几种 Java 生成 7 位随机数的方法: #### 方法一:使用 `Random` 类生成 7 位随机数 ```java import java.util.Random; class RandomNumberGenerator { public static String makeNum() { Random random = new Random(); String num = String.valueOf(random.nextInt(9999999)); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 7 - num.length(); i++) { sb.append("0"); } num = sb.toString() + num; return num; } } ``` 这种方法先生成一个小于 9999999 的随机整数,然后将其转换为字符串。如果生成数字不足 7 位,就在前面补零,最终得到一个 7 位的字符串形式的随机数。该方法来自于对生成 7 位数随机数的示例代码[^2]。 #### 方法二:使用 `Math.random()` 方法生成 7 位随机数 ```java class MathRandomGenerator { public static String generateSevenDigitNumber() { double randomDouble = Math.random() * 9000000 + 1000000; int randomInt = (int) randomDouble; return String.format("%07d", randomInt); } } ``` `Math.random()` 方法会返回一个 `[0, 1)` 范围内的随机双精度浮点数。将其乘以 9000000 后再加上 1000000,就可以得到一个 `[1000000, 10000000)` 范围内的随机数,然后将其转换为整数并格式化为 7 位字符串。 #### 方法三:从字符集生成 7 位随机字符串(包含数字字母) ```java import java.util.Random; class RandomStringGenerator { public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; public static String generateRandomString() { Random random = new Random(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 7; i++) { int index = random.nextInt(ALLCHAR.length()); sb.append(ALLCHAR.charAt(index)); } return sb.toString(); } } ``` 该方法定义了一个包含数字大小写字母的字符集 `ALLCHAR`,然后通过 `Random` 类随机选择字符集中的字符,拼接成一个 7 位的随机字符串[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值