如何使用Java创建随机字符串?
答案 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)