在字符串末尾添加随机字符?

时间:2011-06-16 14:39:56

标签: java string random

String key = "test";

我有一把钥匙。它长4个字符。我想要做的是有一个函数,它查看键的长度,然后在末尾添加随机字符使其长度为20?

因此,如果ket只是'te',那么最后会添加18个随机字符。如果key为'test',则在末尾添加16个随机字符。

...

4 个答案:

答案 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); 
                }
            }