我有一个名为Student
的对象,它有studentName
,studentId
,studentAddress
等。对于studentId
,我必须生成由七个数字字符组成的随机字符串,例如。
studentId = getRandomId();
studentId = "1234567" <-- from the random generator.
我必须确保没有重复的id。
发布于 2010-05-19 16:23:36
生成一个随机的字符串很容易-只需使用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);
}
现在,为了保持唯一性,您需要将生成的字符串存储在某个地方。如何做到这一点将真正取决于您的应用程序的其余部分。
发布于 2010-05-19 16:53:10
这非常好用:
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/RandomStringUtils.html -类似于RandomStringUtils.randomNumeric(7)
。
有10^7个等概率(如果java.util.Random
未损坏)不同的值,因此唯一性可能是个问题。
发布于 2010-05-19 19:38:22
您也可以使用java.util包中的UUID类,它返回32位字符串的随机uuid。
java.util.UUID.randomUUID().toString()
https://stackoverflow.com/questions/2863852
复制相似问题