栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

根据不同的需求(数字、小写字母、大写字母组合)产生指定位数的随机数

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

根据不同的需求(数字、小写字母、大写字母组合)产生指定位数的随机数

一个很简单的功能,我给他封装了一下

import java.util.Random;


public class RandomString {

    
    public static final int FIGURE_onLY = 0;

    
    public static final int FIGURE_LOWER_CASE = 1;

    
    public static final int FIGURE_POWER_CASE = 2;

    
    public static final int LOWER_CASE_onLY = 3;

    
    public static final int POWER_CASE_onLY = 4;

    
    public static final int LOWER_CASE_POWER_CASE = 5;

    
    public static final int FIGURE_LOWER_CASE_POWER_CASE = 6;

    
    private static final String CASE = "abcdefghijklmnopqrstuvwxyz";

    
    private final int length;

    
    private final int type;

    public RandomString(int length, int type) {
        this.length = length;
        this.type = type;
    }

    public String createRandomString() {
        StringBuilder builder = new StringBuilder();
        Random random = new Random();
        switch (type) {
            case FIGURE_ONLY:
                for (int i = 0; i < length; i++) {
                    builder.append(number());
                }
                return builder.toString();
            case FIGURE_LOWER_CASE:
                for (int i = 0; i < length; i++) {
                    builder.append(random.nextInt(2) == 0 ? number() : lowerCase());
                }
                return builder.toString();
            case FIGURE_POWER_CASE:
                for (int i = 0; i < length; i++) {
                    builder.append(random.nextInt(2) == 0 ? number() : powerCase());
                }
                return builder.toString();
            case LOWER_CASE_ONLY:
                for (int i = 0; i < length; i++) {
                    builder.append(lowerCase());
                }
                return builder.toString();
            case POWER_CASE_ONLY:
                for (int i = 0; i < length; i++) {
                    builder.append(powerCase());
                }
                return builder.toString();
            case LOWER_CASE_POWER_CASE:
                for (int i = 0; i < length; i++) {
                    builder.append(random.nextInt(2) == 0 ? lowerCase() : powerCase());
                }
                return builder.toString();
            case FIGURE_LOWER_CASE_POWER_CASE:
                int randomIndex;
                for (int i = 0; i < length; i++) {
                    randomIndex = random.nextInt(3);
                    builder.append(randomIndex == 0 ? number() : randomIndex == 1 ? powerCase() : lowerCase());
                }
                return builder.toString();
            default:
                return "";
        }
    }

    
    private static String number() {
        return String.valueOf((new Random()).nextInt(10));
    }

    
    private static String lowerCase() {
        return String.valueOf(CASE.charAt((new Random()).nextInt(CASE.length())));
    }

    
    private static String powerCase() {
        return String.valueOf(Character.toUpperCase(CASE.charAt((new Random()).nextInt(CASE.length()))));
    }

}

调用:

int strLength = 40;
int strType = RandomString.FIGURE_LOWER_CASE;
RandomString randomString = new RandomString(strLength, strType);
String uid = randomString.createRandomString();
System.out.println(uid);

这个工具类我没把特殊字符放进去,有这个需要的可以自己加分支

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292499.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号