`

随机生成指定长度的字符串

阅读更多

        在工作中,需要随机产生数据库中的字符,以免主键冲突或者违反唯一性约束,特简单写了一个并在此记录一下,在这里产生的方式主要有两种,一种方法是通过随机产生一个个字符,另一种方法是通过UUID方式生成。

        代码如下所示:

package com.bijian.test;

import java.util.Random;
import java.util.UUID;

public class RandomUtils {
    
    public static final String allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    public static final String letterChar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    public static final String numberChar = "0123456789";

    /**
     * 由大小写字母、数字组成的随机字符串
     * @param length
     * @return
     */
    public static String generateString(int length) {
        StringBuffer sb = new StringBuffer();
        Random random = new Random();
        for (int i = 0; i < length; i++) {
            sb.append(allChar.charAt(random.nextInt(allChar.length())));
        }
        return sb.toString();
    }

    /**
     * 由大小写字母组成的随机字符串
     * @param length
     * @return
     */
    public static String generateMixString(int length) {
        StringBuffer sb = new StringBuffer();
        Random random = new Random();
        for (int i = 0; i < length; i++) {
            sb.append(letterChar.charAt(random.nextInt(letterChar.length())));
        }
        return sb.toString();
    }

    /**
     * 由小字字母组成的随机字符串
     * @param length
     * @return
     */
    public static String generateLowerString(int length) {
        return generateMixString(length).toLowerCase();
    }

    /**
     * 由大写字母组成的随机字符串
     * @param length
     * @return
     */
    public static String generateUpperString(int length) {
        return generateMixString(length).toUpperCase();
    }

    /**
     * 产生指字个数的0组成的字符串
     * @param length
     * @return
     */
    public static String generateZeroString(int length) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < length; i++) {
            sb.append('0');
        }
        return sb.toString();
    }

    /**
     * 将数字转化成指字长度的字符串
     * @param num
     * @param fixdlenth
     * @return
     */
    public static String toFixdLengthString(long num, int fixdlenth) {
        StringBuffer sb = new StringBuffer();
        String strNum = String.valueOf(num);
        if (fixdlenth - strNum.length() >= 0) {
            sb.append(generateZeroString(fixdlenth - strNum.length()));
        } else {
            throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth + "的字符串发生异常!");
        }
        sb.append(strNum);
        return sb.toString();
    }

    /**
     * 将数字转化成指字长度的字符串
     * @param num
     * @param fixdlenth
     * @return
     */
    public static String toFixdLengthString(int num, int fixdlenth) {
        StringBuffer sb = new StringBuffer();
        String strNum = String.valueOf(num);
        if (fixdlenth - strNum.length() >= 0) {
            sb.append(generateZeroString(fixdlenth - strNum.length()));
        } else {
            throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth + "的字符串发生异常!");
        }
        sb.append(strNum);
        return sb.toString();
    }
    
    /**
     * 这个方法只支持最大长度为32的随机字符串,如要支持更大长度的,可以适当修改此方法,如前面补、后面补,或者多个uuid相连接
     * @param length
     * @return
     */
    private static String toFixedLengthStringByUUID(int length) {
        
        //也可以通过UUID来随机生成
        UUID uuid = UUID.randomUUID();
        return uuid.toString().replace("-", "").substring(0, length);
    }

    public static void main(String[] args) {
        
        System.out.println(generateString(32));
        System.out.println(generateMixString(32));
        System.out.println(generateLowerString(32));
        System.out.println(generateUpperString(32));
        System.out.println(generateZeroString(32));
        System.out.println(toFixdLengthString(123, 32));
        System.out.println(toFixdLengthString(123L, 32));
        
        System.out.println(toFixedLengthStringByUUID(32));
    }
}

 

分享到:
评论

相关推荐

    随机生成32位字符串

    在这个场景中,"随机生成32位字符串"是一个常见的需求,例如在创建唯一标识符、生成安全密码或进行加密算法时。下面将详细介绍如何在VB中实现这一功能。 首先,我们要了解VB中的字符串是由一系列字符组成的,每个...

    生成指定长度的随机字符串

    在IT领域,生成指定长度的随机字符串是一项常见的需求,它广泛应用于密码生成、测试数据填充、安全令牌等领域。本文将深入探讨如何生成这样的随机字符串,并介绍相关编程语言的实现方法。 首先,我们要理解随机字符...

    aotu.js 字符串指定字符 随机生成出汉字

    总之,`aotu.js`的字符串指定字符随机生成汉字的功能,结合JavaScript的字符串和数学操作,为前端开发者提供了一种强大的工具,用于创建动态和多样化的汉字内容。在实际应用中,它可以帮助提高引流脚本的效果,增加...

    php 随机生成10位字符代码

    本文将介绍如何使用PHP脚本语言随机生成一个10位字符的代码字符串。更重要的是,通过理解其原理,开发者可以轻松扩展到自定义任意长度的随机字符串生成。 首先,我们要明确一点:生成随机字符串的核心在于随机选取...

    MySQL中随机生成固定长度字符串的方法

    本文将详细讲解如何在MySQL中定义并使用一个函数来生成固定长度的随机字符串。 首先,我们创建一个名为`rand_string`的自定义函数。这个函数接受一个整数参数`n`,表示需要生成的字符串长度。函数内部定义了一个...

    C# 生成随机字母字符串

    因此,我们可以创建一个函数,接受一个整数参数来决定字符串的长度,并使用`Random`类来生成随机的ASCII码值,然后将其转换为对应的字母。 以下是一个简单的示例代码,用于生成随机大小写字母字符串: ```csharp ...

    随机生成数字字母字符串

    在IT领域,随机生成数字字母字符串是一项常见的任务,特别是在安全验证、密码生成或者验证码系统中。这个任务的主要目的是创建一个独特且不可预测的序列,以防止自动化程序的攻击。在这个场景下,我们通常会结合数字...

    生成随机字符串(字符串,数字)

    下面是一个示例方法,生成指定长度的随机字符串: ```csharp public static string GenerateRandomString(int length) { string alphanumeric = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789...

    字符串随机生成小软件

    在IT行业中,字符串随机生成是一项常见的任务,尤其在软件开发、加密、测试等领域。这个名为“字符串随机生成小软件”的程序就是专为此目的设计的工具。它能够帮助用户快速、高效地生成各种长度和格式的随机字符串,...

    Java随机字符串生成器,可用于生成随机密码,密约等场景,支持字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置)

    Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...

    java随机生成字符串(字符随机生成类 生成随机字符组合).docx

    ### Java随机生成字符串知识点解析 #### 一、概述 在软件开发过程中,有时我们需要生成随机字符串来满足不同的需求,比如生成验证码、密码等。本文档介绍了一种利用Java实现随机字符串生成的方法。此方法提供了...

    C#随机字符串生成代码

    本篇将深入探讨如何在C#中生成指定长度、包含字母或数字或者两者的混合随机字符串。 首先,我们需要了解C#中用于生成随机数的`System.Random`类。这个类提供了生成伪随机数的方法,可以通过种子初始化以获得不同的...

    C# 生成随机字符串

    最近做个功能,需要用到随机字符串,在网上整理了一些代码,生成随机字符串 可以设置生成的随机字符的取间..

    随机字符串生成工具.zip

    2. **字符串长度**:设置生成的随机字符串的固定长度或允许的长度范围。 3. **随机性保证**:`Random`类虽然名为“随机”,但实际上是伪随机,其结果序列是可预测的。为确保随机性,可以使用类的实例化参数,或者...

    Java 生成随机字符串数组的实例详解

    4. 使用for循环生成一个长度为10以内的随机字符串。 5. 将生成的字符串添加到List集合中,并判断是否已经存在相同的字符串。 6. 对List集合进行排序,按照从左向右的原则和0-9数字优先原则。 7. 使用Collections....

    Mac利用终端命令把字符串转换成md5[归类].pdf

    Mac 终端命令将字符串转换为 MD5、Lua 元表实现类和多态、MySQL 删除表中多个字段分组后的重复数据、PHP 队列框架 WanQueue、...PKPM 软件数据写入到 EXCEL、JavaScript 随机生成指定长度字符串、Go 语言网络编程等。

    PHP生成随机字符串

    PHP生成(产生)随机字符串,可用来自动生成密码,默认长度6位,字母和数字混合等模式,支持随机生成中文字(汉字)。

    随机字符串生成器.exe

    本工具用于生成随机字符串,可以自定义字符池及字符串长度。欢迎下载使用! 本工具用于生成随机字符串,可以自定义字符池及字符串长度。欢迎下载使用!

Global site tag (gtag.js) - Google Analytics