Java随机生成字符串的4种方式

这篇具有很好参考价值的文章主要介绍了Java随机生成字符串的4种方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

java.util.UUID 类可用于生成UUID, 它的static randomUUID方法返回一个32个字符的字符串。

import java.util.UUID;

public class RandomStringGenerator {

    public static void main(String[] args) {
        String randomString = usingUUID();
        System.out.println("Random string is: " + randomString);
        System.out.println("Random string of 8 characters is: "
            + randomString.substring(0, 8));
    }

    static String usingUUID() {
        UUID randomUUID = UUID.randomUUID();
        return randomUUID.toString().replaceAll("-", "");
    }
}

注意randomUUID方法生成的字符串包含“-”。上面的示例通过使用空字符串替换了。

以上程序输出为:

Random string is: 923ed6ec4d04452eaf258ec8a4391a0f
Random string of 8 characters is: 923ed6ec

使用Math类

下面的算法可以使用这种方法生成一个固定长度的随机字符串。

  • 初始化一个空字符串以保存结果。
  • 创建大小写字母和数字的组合,以创建一组超级字符。
  • 启动一个循环,该循环的count等于所需的随机字符串长度。
  • 在每次迭代中,生成一个介于0和超集长度之间的随机数。
  • 在步骤4中生成的数字索引处从步骤2中的字符串中提取字符,并将其添加到步骤1中的字符串中。
  • 循环完成后,步骤1中的字符串将是一个随机字符串。

示例代码:

import java.util.Math;

public class RandomStringGenerator {

    public static void main(String[] args) {
        String randomString = usingMath(10);
        System.out.println("Random string is: " + randomString);
    }

    static String usingMath(int length) {
        String alphabetsInUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String alphabetsInLowerCase = "abcdefghijklmnopqrstuvwxyz";
        String numbers = "0123456789";
        // create a super set of all characters
        String allCharacters = alphabetsInLowerCase + alphabetsInUpperCase + numbers;
        // initialize a string to hold result
        StringBuffer randomString = new StringBuffer();
        // loop for 10 times
        for (int i = 0; i < length; i++) {
            // generate a random number between 0 and length of all characters
            int randomIndex = (int)(Math.random() * allCharacters.length());
            // retrieve character at index and add it to result
            randomString.append(allCharacters.charAt(randomIndex));
        }
        return randomString.toString();
    }
}

以上程序输出为:

Random string is: kqNG2SYHeF
Random string is: lCppqqUg8P
Random string is: GGiFiEP5Dz

这种方法使您能够更好地控制需要包含在随机字符串中的字符。例如,如果您不想要数字,那么就从超集中删除它们。如果您想要特殊字符,那么就在超集中添加一组特殊字符。

使用Random类

此方法与Math方法类似,即创建所有字符的超集,生成一个随机索引,并使用该索引处的字符创建最终字符串。

这种方法使用java.util.Random 类生成随机索引。

示例代码:

import java.util.Random;

public class RandomStringGenerator {

    public static void main(String[] args) {
        String randomString = usingRandom(10);
        System.out.println("Random string is: " + randomString);
    }

    static String usingRandom(int length) {
        String alphabetsInUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String alphabetsInLowerCase = "abcdefghijklmnopqrstuvwxyz";
        String numbers = "0123456789";
        // create a super set of all characters
        String allCharacters = alphabetsInLowerCase + alphabetsInUpperCase + numbers;
        // initialize a string to hold result
        StringBuffer randomString = new StringBuffer();
        // loop for 10 times
        for (int i = 0; i < length; i++) {
            // generate a random number between 0 and length of all characters 
            int randomIndex = random.nextInt(allCharacters.length());
            // retrieve character at index and add it to result
            randomString.append(allCharacters.charAt(randomIndex));
        }
        return randomString.toString();
   }
}

以上程序输出为:

Random string is: TycOBOxITs
Random string is: 7LLWVbg0ps
Random string is: p6VyqdO6bT

您还可以使用java.util.SecureRandom类生成一个随机整数。它是java.util.Random的一个子类。

使用RandomStringUtils类

Apache Commons Lang库有一个org.apache.commons.lang.RandomStringUtils类,该类具有生成固定长度的随机字符串的方法。

它的方法可以生成只包含字母(随机字母)、数字(随机数字)或两者(随机字母数字)的随机字符串。

所有这些方法都接受一个整数参数,该参数表示它们将生成的字符串的长度。

示例代码:

import org.apache.commons.lang.RandomStringUtils;

public class RandomStringGenerator {

    public static void main(String[] args) {
        // generate a random string of 10 alphabets
        String randomString = RandomStringUtils.randomAlphabetic(10);
        System.out.println("Random string of 10 alphabets: " + randomString);
        randomString = RandomStringUtils.randomNumeric(10);
        System.out.println("Random string of 10 numbers: " + randomString);
        randomString = RandomStringUtils.randomAlphanumeric(10);
        System.out.println("Random string of 10 alphanumeric characters: " + randomString);
   }
}

以上程序输出为:

Random string of 10 alphabets: OEfadIYfFm
Random string of 10 numbers: 1639479195
Random string of 10 alphanumeric characters: wTQRMXrNY9

该类还有一个方法random,该方法接受一个整数(即要生成的字符串的长度)和一个char数组。生成的随机字符串仅由该数组中的字符组成。

通过根据构建工具添加以下依赖项,可以将Apache Commons Lang包含到您的项目中。文章来源地址https://www.toymoban.com/news/detail-476808.html

<dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-lang3</artifactId>
   <version>3.9</version>
</dependency>

到了这里,关于Java随机生成字符串的4种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hutool 生成随机数和随机字符串

    官方文档: https://www.hutool.cn/docs/#/core/工具类/随机工具-RandomUtil 整理完毕,完结撒花~

    2024年02月16日
    浏览(57)
  • Java中字符串占位替换、字符串拼接、字符串与Collection互转的方式

    1、String.format 最原始最基础的方式。 使用%来表示占位,后面跟上不同的标识符,用于限定这个占位符的参数类型,由jdk原生提供支持。 示例: 2、MessageFormat 如果遇到一个参数需要替换模板中多个占位的场景,更友好的方式是MessageFormat,由jdk原生提供支持。 示例: 举例:将

    2024年02月16日
    浏览(57)
  • MySQL、Oracle 生成随机ID、随机数、随机字符串

    UUID():是由128位的数字组成的全局唯一标识符。每次都生成一个新的随机数。 它通常以32个十六进制数的形式表示,分为5个部分,以连字符分隔。 UUID的长度是36个字符,包括32个十六进制数字和4个连字符。 UUID的标准格式是由 8-4-4-4-12 个十六进制数字组成的,其中每个部分的

    2024年01月16日
    浏览(57)
  • QT生成固定长度的随机字符串

    最近项目中有一个需要使用QT生成固定长度随机字符串的需求,需求也很简单,就是生成一个n位的仅包含0-9以及大写字母的字符串,因为这也是第一次使用QT自身的随机数,这里就做一下简单记录。 废话不多说,直接上代码。 View Code  这段代码逻辑也很简单,以当前的时间戳

    2024年03月13日
    浏览(61)
  • C# 生成指定长度的随机字符串

     /// summary         /// 生成指定长度的随机字符串         /// /summary         /// param name=\\\"intLength\\\"随机字符串长度/param         /// param name=\\\"booNumber\\\"生成的字符串中是否包含数字/param         /// param name=\\\"booSign\\\"生成的字符串中是否包含符号/param         /// param name=\\\"booSmall

    2024年01月19日
    浏览(60)
  • 字符串随机生成工具(开源)-Kimen(奇门)

            由于最近笔者在开发数据脱敏相关功能,其中一类脱敏需求为能够按照指定的格式随机生成一个字符串来代替原有信息,数据看起来格式需要与原数据相同,如:电话号码,身份证号以及邮箱等。在网上搜索了下,发现没有特别合适的开源工具,于是秉承着没有开

    2024年02月19日
    浏览(51)
  • Java实现字符串排序的几种方式

    创建实体类(此处引入了lombok) 一、使用List集合中自带的sort方法(字符串的位数保持一致,不一致的情况可以在左边补0,也可以使用String.format()方法补全) 1、在对象排序中使用 2、在字符串排序中使用 二、使用Stream流(字符串的位数保持一致,不一致的情况可以在左边补

    2024年02月11日
    浏览(54)
  • java中对象转json字符串的常用方式

    1.使用Jackson库: Jackson是一个常用且功能强大的Java库,用于处理JSON数据。下面是使用Jackson将对象转换为JSON字符串的示例: 需要依赖: 2.使用Gson库: Gson是Google提供的一个Java库,它可以处理JSON数据的序列化和反序列化。以下是使用Gson将对象转换为JSON字符串的示例 相关依赖

    2024年02月07日
    浏览(48)
  • Java如何将字符串转为数字int(三种方式)

    如何将java字符串转换为数字 对知识永远只有学无止境。 第一种 第二种 第三种 注意:这三种的转换区别在哪里呢?对知识应该敬畏。 第一种是将字符串,转换成一个数字的对象,两个相同的数字进行转换。 结果:不相等 第二种:多次的解析,最终的得到结果,可以用 “

    2024年02月13日
    浏览(60)
  • Java中验证日期时间字符串是否合法的几种方式

    第一种,JDK8之前用SimpleDateFormat类 可以使用SimpleDateFormat类来验证日期时间的格式和有效性。 首先,可以创建SimpleDateFormat对象,然后使用该对象的parse()方法来验证日期时间字符串的格式和有效性。如果该方法抛出异常,则表示日期时间字符串不符合指定的格式,而如果该方法

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包