21xrx.com
2025-03-24 13:43:27 Monday
文章检索 我的文章 写文章
「JAVA生成随机字符串」教程:实现不同场景下的随机字符串生成
2023-06-16 20:33:17 深夜i     16     0
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;
      }
    }
  }
}

  
  

评论区

请求出错了