【发布时间】:2023-11-26 06:27:01
【问题描述】:
我正在生成一个随机密码。我的密码长度为 8 个字符,其中包含特殊字符。我需要保留first letter as alphabet,并需要将剩余的七个字符改组,使其成为mixture of alphanumeric + ascii characters。
public String generatePassword() {
int passwordLength = MAX_PASSWORD_LENGTH;
StringBuffer password = new StringBuffer(passwordLength);
//first character as an alphabet
password.append(RandomStringUtils.randomAlphabetic(1)).toString();
String alphaNumeric = RandomStringUtils.random(5, true, true);
String asciiChars = RandomStringUtils.randomAscii(2);
password.append(alphaNumeric).append(asciiChars);
return password.toString();
}
我需要一些帮助来随机播放最后 7 个字符。怎么做?
【问题讨论】:
-
如果它们已经是随机的,为什么还需要洗牌?
-
Collections.shuffle是你所需要的 -
随机化/改组一个随机序列没有任何作用,它不会使它更随机。
-
可以使用StringBuilder时请不要使用StringBuffer。
-
@Peter,感谢您建议我使用 StringBuilder