добавить случайные символы в конец строки? - PullRequest
2 голосов
/ 16 июня 2011
String key = "test";

У меня есть ключ.Это 4 символа в длину.То, что я хочу сделать, это иметь функцию, которая смотрит на длину ключа и затем добавляет случайные символы в конце, чтобы сделать его длиной 20?

Так что, если бы кет был просто 'te', это добавило бы 18случайные символы в конце.Если ключ 'test', он добавляет 16 случайных символов в конце.

??

Ответы [ 4 ]

4 голосов
/ 16 июня 2011

Рассмотрим решение следующим образом.Здесь вы получите смешанные строчные и заглавные буквы.

Пример:

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();
}
3 голосов
/ 16 июня 2011

ТАК не о том, чтобы другие писали ваш код ... но чтобы дать вам отправную точку, взгляните на этот вопрос и измените его в соответствии с требованиями.

0 голосов
/ 16 июня 2011

Краткое решение:

Random random = new Random();
String randomString = "test";
       for(;randomString.length() < 20 ;) {
            char randomChar = (char) random.nextInt(123);
            randomString += (Character.isLetterOrDigit(randomChar)) ? randomChar : ""; 
        }
0 голосов
/ 16 июня 2011
if(password.length() != 20){
                while (password.length() != 20){
                    password += (char)String.valueOf(myRandom.nextInt()).charAt(0); 
                }
            }
...