创建给定基数的随机字符串
Create a random string of a given cardinality
在给定给定基数的情况下,是否存在在 Java 中生成随机字符串的内置(或其他微不足道的)方法?
例如,randStringCard(10,2)
会创建一个长度为 10 但只有两个可能的唯一值的随机字符串
RandStringCard(1,26)
将生成具有 26 个值的单个字符,而 randStringCard(*,1)
将始终生成相同的输出。
这可以通过使用 Random
和 nextInt(
<#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));
在给定给定基数的情况下,是否存在在 Java 中生成随机字符串的内置(或其他微不足道的)方法?
例如,randStringCard(10,2)
会创建一个长度为 10 但只有两个可能的唯一值的随机字符串
RandStringCard(1,26)
将生成具有 26 个值的单个字符,而 randStringCard(*,1)
将始终生成相同的输出。
这可以通过使用 Random
和 nextInt(
<#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));