如何在Java中生成随机字符串
我有一个名为 的对象,它有 、 、 等。对于 ,我必须生成由七个数字字符组成的随机字符串,例如。Student
studentName
studentId
studentAddress
studentId
studentId = getRandomId();
studentId = "1234567" <-- from the random generator.
我必须确保没有重复的ID。
我有一个名为 的对象,它有 、 、 等。对于 ,我必须生成由七个数字字符组成的随机字符串,例如。Student
studentName
studentId
studentAddress
studentId
studentId = getRandomId();
studentId = "1234567" <-- from the random generator.
我必须确保没有重复的ID。
生成随机字符串很容易 - 只需使用包含您希望可用的所有字符的字符串,例如java.util.Random
public static String generateString(Random rng, String characters, int length)
{
char[] text = new char[length];
for (int i = 0; i < length; i++)
{
text[i] = characters.charAt(rng.nextInt(characters.length()));
}
return new String(text);
}
现在,为了获得唯一性,您需要将生成的字符串存储在某个位置。如何做到这一点实际上取决于应用程序的其余部分。
这非常好:
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/RandomStringUtils.html - 类似 .RandomStringUtils.randomNumeric(7)
有 10^7 个等概率(如果未损坏)不同的值,因此唯一性可能是一个问题。java.util.Random