java生成随机数字和字母组合(自定义长度)

本文介绍了一个使用Java实现的简单程序,该程序能够生成指定长度的随机字符串,包含数字和字母的组合。通过循环和随机数生成,确保了生成的字符串不会重复,并提供了完整的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.util.Date;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

/**
 * 
 * @author lollipop-xtl
 *
 */
public class Demo {

    public static void main(String[] args) {
        Set<String> set = new HashSet<String>();
        Long startTime = new Date().getTime();
        while (true) {
            String code = getCharAndNumr(6);
            set.add(code);
            if (set.size() >= 1000) {
                break;
            }
        }
        Long endTime = new Date().getTime();
        long time = (endTime - startTime);
        System.out.println("生成个数:" + set.size());
        System.out.println("生成耗时" + time + "毫秒,约" + (time / 1000) + "秒");//
        for (String string : set) {
            System.out.println(string);
        }
    }

    /**
     * java生成随机数字和字母组合
     * 
     * @param length[生成随机数的长度]
     * 
     */
    public static String getCharAndNumr(int length) {
        String val = "";
        Random random = new Random();
        for (int i = 0; i < length; i++) {
            // 输出字母还是数字
            String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
            // 字符串
            if ("char".equalsIgnoreCase(charOrNum)) {
                // 取得大写字母还是小写字母
                int choice = random.nextInt(2) % 2 == 0 ? 65 : 97;
                val += (char) (choice + random.nextInt(26));
            } else if ("num".equalsIgnoreCase(charOrNum)) { // 数字
                val += String.valueOf(random.nextInt(10));
            }
        }
        return val;
    }
}
Java 中,可以通过 `Random` 类来实现随机生成英文字母的需求。以下是几种常见的实现方式: ### 随机生成小写英文字母 使用 `Random` 类结合字符数组或字符串来选择随机字母是一种常见方法。以下代码片段展示了如何生成指定数量的小写字母: ```java import java.util.Random; public class RandomLetterGenerator { public static void main(String[] args) { Random rd = new Random(); StringBuilder result = new StringBuilder(); String alphabet = "abcdefghijklmnopqrstuvwxyz"; int count = 5; // 生成5个小写字母 for (int i = 0; i < count; i++) { int index = rd.nextInt(alphabet.length()); result.append(alphabet.charAt(index)); } System.out.println("随机生成的小写字母: " + result.toString()); } } ``` ### 随机生成大写英文字母 如果需要生成大写字母,可以修改使用的字母字符串为大写形式,或者通过 ASCII 码直接生成: ```java import java.util.Random; public class RandomUpperCaseLetter { public static void main(String[] args) { Random rd = new Random(); StringBuilder result = new StringBuilder(); int count = 5; // 生成5个大写字母 for (int i = 0; i < count; i++) { char letter = (char) ('A' + rd.nextInt(26)); result.append(letter); } System.out.println("随机生成的大写字母: " + result.toString()); } } ``` ### 同时生成大小写英文字母 若希望同时包含大小写字母,则可以在一个字符串中定义所有可能的字符,并从中随机选择[^2]: ```java import java.util.Random; public class RandomMixedCaseLetter { public static void main(String[] args) { Random rd = new Random(); StringBuilder result = new StringBuilder(); String letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; int count = 5; // 生成5个混合大小写的字母 for (int i = 0; i < count; i++) { int index = rd.nextInt(letters.length()); result.append(letters.charAt(index)); } System.out.println("随机生成的混合大小写字母: " + result.toString()); } } ``` ### 随机生成字母并控制生成数量 对于更复杂的场景,例如生成特定数量的字母组合,可以封装成方法以提高复用性。以下示例演示了如何构建一个灵活的方法来生成任意长度随机字母序列[^3]: ```java import java.util.Random; public class CustomRandomGenerator { public static String generateRandomLetters(int length) { Random rd = new Random(); StringBuilder val = new StringBuilder(); String letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; for (int i = 0; i < length; i++) { int index = rd.nextInt(letters.length()); val.append(letters.charAt(index)); } return val.toString(); } public static void main(String[] args) { String randomLetters = generateRandomLetters(6); System.out.println("自定义长度随机字母: " + randomLetters); } } ``` 以上方案可以根据实际需求进行调整,包括生成字母的数量、大小写的选择以及是否允许重复等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值