生成随机字符串的两种做法

第一种解法:

import java.util.Random;

/**
 * 生成一个长度为5随机字符串,字符串可以有大写字母,小写字母或数字组成
 */
public class Test02 {
    public static void main(String[] args) {
        //定义一个StringBuilder用于存储所需要生成的字符集
        StringBuilder stringBuilder = new StringBuilder();
        //定义一个用于存储随机字符的容器
        StringBuilder randomStr = new StringBuilder();
        //创建Random对象
        Random r = new Random();
        //将大写,小写和数字放在StringBuilder里
        for (char c = 'A'; c <= 'Z'; c++) {
            stringBuilder.append(c);
        }
        for (char c = 'a'; c <= 'z'; c++) {
            stringBuilder.append(c);
        }
        for (char c = '0'; c <= '9'; c++) {
            stringBuilder.append(c);
        }
        for (int i = 0; i < 5; i++) {
            //因为字符集的总长度为62,所以需要生成0-62之间的索引值
            int index = r.nextInt(62);
            char ranChar = stringBuilder.charAt(index);
            randomStr.append(ranChar);
        }
        System.out.println(randomStr);

    }
}
运行结果:
RWeTx

第二种方法:

import java.util.Random;

/**
 * 生成一个长度为5随机字符串,字符串可以有大写字母,小写字母或数字组成
 */
public class Test03 {
    public static void main(String[] args) {
        //用字符串容器存储随机字符串
        StringBuilder stringBuilder = new StringBuilder();
        //创建Random对象
        Random r = new Random();
        //因为是5个字符的字符串,循环5次
        for (int i = 0; i < 5; i++) {
            //每次随机出0,1,2之间的任意一个数字
            int num = r.nextInt(3);
            switch (num) {
                //如果随机为0,则添加随机大写字母
                case 0:
                    char lowerChar = (char)(r.nextInt(26) + 65);
                    stringBuilder.append(lowerChar);
                    break;
                //如果随机为1,则添加随机小写字母
                case 1:
                    char upperChar = (char)(r.nextInt(26) + 97);
                    stringBuilder.append(upperChar);
                    break;
                //如果随机为2,则添加随机数字字符
                case 2:
                    char numChar = (char)(r.nextInt(10) + 48);
                    stringBuilder.append(numChar);
                    break;
            }
        }
        //输出结果
        System.out.println(stringBuilder);
    }
}
运行结果:
9UO2w
  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值