如何创建随机字符串?

时间:2019-09-12 18:23:20

标签: java

如何使用Java创建随机字符串?

3 个答案:

答案 0 :(得分:2)

您需要存储一些单词,以从中提取随机单词。然后,您只想使用随机标点符号将它们加入。检查this个英语单词的集合。

答案 1 :(得分:0)

似乎,有意义的随机字符串是指包含字典中或某些单词的字符串。当然,这样的字符串不是“非常随机的”(对于密码来说并不是很好的选择)。

不过,要实现此相当简单的操作,请执行以下操作:

获取一个包含您认为有意义的单词的csv文件。将单词加载到列表或类似内容中。

从文件中随机选择两个或三个(或更多!)单词,然后选择一些标点符号,数字(或一无所有),并以某种随机顺序将单词与它们连接起来。

简单的代码如下:

import random
def getMeaningfulRandomString(level):
    words = ["doe", "Joe", "lover", "king", "kong", "from", "killer"]
    connectors = ".!#1234567890"
    str = ""
    for i in range(level):
         x = random.randint(0,len(words)-1)
         str += words[x]
         if (random.random() < 0.5):
            str += "".join([connectors[random.randint(0, len(connectors)-1)] for i in range (level)])
    return str

for i in range(10):
    print(getMeaningfulRandomString(3))

这给了我一个输出,如:

from.09from922from.78
Joedoe1#5lover
JoekongJoe
killerJoe005kong
doeJoe676Joe
kongkiller82#Joe#!#
doekingfrom
lover3!6king839from1!5
killerlover095Joe
kong#!0kingdoe022

您可以通过各种方式对其进行修改,以获得适合您目的的字符串。

答案 2 :(得分:0)

您可以使用Apache Commons中的RandomStringUtils.Java

String randomString = RandomStringUtils.randomAlphanumeric(50)