21xrx.com
2024-11-22 10:07:18 Friday
登录
文章检索 我的文章 写文章
「JAVA生成随机字符串」教程:实现不同场景下的随机字符串生成
2023-06-16 20:33:17 深夜i     --     --
JAVA编程 随机字符串 代码案例

「JAVA生成随机字符串」教程:实现不同场景下的随机字符串生成

在JAVA编程中,生成随机字符串是常见需求。不同场景下可能会有不同的要求,例如生成指定长度、指定字符范围内的随机字符串,或者生成不重复的随机字符串。本文将介绍实现不同场景下生成随机字符串的方法,并提供相关代码案例。

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

在JAVA中,可以利用Random类来生成随机数,并将其转换成字符。通过循环生成指定长度的随机字符串。

以下是生成长度为10的随机字符串的JAVA代码:


import java.util.Random;

public class RandomStringUtil {

  

  private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

  

  public static String generate(int length) {

    Random random = new Random();

    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < length; i++) {

      sb.append(CHARACTERS.charAt(random.nextInt(CHARACTERS.length())));

    }

    return sb.toString();

  }

}

2. 生成指定字符范围内的随机字符串

有时候需要生成的随机字符串只能包含特定的字符,此时可以在生成随机数时限制其范围。

以下是生成只包含数字和大写字母的随机字符串的JAVA代码:


import java.util.Random;

public class RandomStringUtil {

  

  private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

  

  public static String generate(int length) {

    Random random = new Random();

    StringBuilder sb = new StringBuilder();

    for (int i = 0; i < length; i++) {

      sb.append(CHARACTERS.charAt(random.nextInt(CHARACTERS.length())));

    }

    return sb.toString();

  }

}

3. 生成不重复的随机字符串

有时候需要生成的随机字符串不能重复,此时可以利用JAVA的Set集合来判断是否已经生成过。

以下是生成长度为5的不重复随机字符串的JAVA代码:


import java.util.HashSet;

import java.util.Random;

import java.util.Set;

public class RandomStringUtil {

  

  private static final String CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

  

  public static String generate() {

    Random random = new Random();

    Set set = new HashSet<>();

    while (true) {

      StringBuilder sb = new StringBuilder();

      for (int i = 0; i < 5; i++) {

        sb.append(CHARACTERS.charAt(random.nextInt(CHARACTERS.length())));

      }

      String randomString = sb.toString();

      if (!set.contains(randomString)) {

        set.add(randomString);

        return randomString;

      }

    }

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复