【问题标题】:add random characters to end of string?在字符串末尾添加随机字符?
【发布时间】:2011-09-16 10:55:02
【问题描述】:
String key = "test";

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

因此,如果 ket 只是 'te',它会在末尾添加 18 个随机字符。如果键是“测试”,它会在最后添加 16 个随机字符。

??

【问题讨论】:

标签: java string random


【解决方案1】:

考虑如下解决方案。在这里,您将混合使用小写和大写字母。

示例:

for (int i = 0; i < 5; i++) {
    System.out.println(getRandomString("test"));
}

将返回:

测试RBMuWiiibcyAAaGc testOjvmVMoQPYGJKKUs testBnCPLyqbTUFzQrOs 测试gaFkzFtnsYHNkDJR 测试sisbGHzItczsJYNK
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();
}

【讨论】:

    【解决方案2】:

    SO 并不是要让其他人编写您的代码...而是为您提供一个起点,请查看this question,然后进行修改以适应您的需要。

    【讨论】:

      【解决方案3】:

      一个简洁的解决方案是:

      Random random = new Random();
      String randomString = "test";
             for(;randomString.length() < 20 ;) {
                  char randomChar = (char) random.nextInt(123);
                  randomString += (Character.isLetterOrDigit(randomChar)) ? randomChar : ""; 
              }
      

      【讨论】:

        【解决方案4】:
        if(password.length() != 20){
                        while (password.length() != 20){
                            password += (char)String.valueOf(myRandom.nextInt()).charAt(0); 
                        }
                    }
        

        【讨论】:

          猜你喜欢
          • 2013-01-15
          • 1970-01-01
          • 1970-01-01
          • 2023-03-17
          • 2020-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多