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

第一种解法:

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

你可能感兴趣的:(java常见编程题)