String key = "test";
我有一把钥匙。它长4个字符。我想要做的是有一个函数,它查看键的长度,然后在末尾添加随机字符使其长度为20?
因此,如果ket只是'te',那么最后会添加18个随机字符。如果key为'test',则在末尾添加16个随机字符。
...
答案 0 :(得分:4)
考虑如下解决方案。在这里,您将混合使用小写和大写字母。
示例:强>
for (int i = 0; i < 5; i++) {
System.out.println(getRandomString("test"));
}
将返回:
testRBMuWIiibcyAAaGc testOjvmVMoQPYGJKKUs testBnCPLyqbTUFzQrOs testgaFkzFtnsYHNkDJR testsisbGHzItczsJYNK
public static String getRandomString(String s) {
int i = 0;
int randomNumber;
boolean isUpperCase;
StringBuilder response = new StringBuilder();
Random randomNumberGenerator = new Random();
while (i++ < MAX_LENGTH - s.length()) {
isUpperCase = randomNumberGenerator.nextBoolean();
randomNumber = randomNumberGenerator.nextInt(26) + 65;
response.append(isUpperCase ? (char) randomNumber :
Character.toLowerCase((char) randomNumber));
}
return response.insert(0, s).toString();
}
答案 1 :(得分:3)
所以不是要让别人写你的代码......而是为了给你一个起点,看看this question,并修改以适应。
答案 2 :(得分:0)
简洁的解决方案是:
Random random = new Random();
String randomString = "test";
for(;randomString.length() < 20 ;) {
char randomChar = (char) random.nextInt(123);
randomString += (Character.isLetterOrDigit(randomChar)) ? randomChar : "";
}
答案 3 :(得分:-1)
if(password.length() != 20){
while (password.length() != 20){
password += (char)String.valueOf(myRandom.nextInt()).charAt(0);
}
}