创建给定基数的随机字符串

Create a random string of a given cardinality

在给定给定基数的情况下,是否存在在 Java 中生成随机字符串的内置(或其他微不足道的)方法?

例如,randStringCard(10,2) 会创建一个长度为 10 但只有两个可能的唯一值的随机字符串

RandStringCard(1,26) 将生成具有 26 个值的单个字符,而 randStringCard(*,1) 将始终生成相同的输出。

这可以通过使用 RandomnextInt(<#differentChars>) 来获得 int在您要支持的不同字符范围内。然后你需要将这个数字转换成一个String并添加到结果中,重复"desiredLength"次。

要将数字转换为 String,您可以执行以下操作:

if (n < 26)
  s += (char)('A' + n); // A-Z is used first
else if (n < 36)
  s += n - 26; // then 0-9
else
  s += ???; // symbols or lower case letters

可能会有用

import java.security.SecureRandom;
...
System.out.println(new BigInteger(50,  new SecureRandom()).toString(32));