首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中生成随机字符串

如何在Java中生成随机字符串
EN

Stack Overflow用户
提问于 2010-05-19 16:18:22
回答 7查看 236K关注 0票数 72

我有一个名为Student的对象,它有studentNamestudentIdstudentAddress等。对于studentId,我必须生成由七个数字字符组成的随机字符串,例如。

代码语言:javascript
复制
studentId = getRandomId();
studentId = "1234567" <-- from the random generator.

我必须确保没有重复的id。

EN

回答 7

Stack Overflow用户

发布于 2010-05-19 16:23:36

生成一个随机的字符串很容易-只需使用java.util.Random和一个包含您想要的所有字符的字符串,例如

代码语言:javascript
复制
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);
}

现在,为了保持唯一性,您需要将生成的字符串存储在某个地方。如何做到这一点将真正取决于您的应用程序的其余部分。

票数 131
EN

Stack Overflow用户

发布于 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未损坏)不同的值,因此唯一性可能是个问题。

票数 55
EN

Stack Overflow用户

发布于 2010-05-19 19:38:22

您也可以使用java.util包中的UUID类,它返回32位字符串的随机uuid。

java.util.UUID.randomUUID().toString()

http://java.sun.com/j2se/1.5.0/docs/api/java/util/UUID.html

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2863852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档