如何生成字符串的各种组合?

时间:2014-09-05 02:28:03

标签: java string

我必须从一开始的一些固定位开始生成一个字符串组合序列,例如

String password = "abc-----"

这里,前三个字符对于每个组合保持不变,只有之后的字符必须改变, 我需要这个字符串的各种组合,如

abca
abcb
abcc
-----
abcaa
abcab
---- so on

使用任何循环,以便在同一个循环中我需要将其与其他输入字符串进行比较并输出字符串(如果两者都匹配)。

如何使用Java或一般的循环生成此序列或字符串的各种组合?

//更新,对不起,我忘了发帖试试了:

我正在使用嵌套for循环,例如

for(char i='a'; i<'z'; i++) {
     for(char j='a'; j<'z'; j++) {
         String password = "abc" + i + j ;
         }
      } 

有没有更有效的方法来做到这一点?

1 个答案:

答案 0 :(得分:1)

如果你想生成一个随机字符串,那么你可以使用:(这里我也在我的随机字符串生成中包含数字,如果你不想使用数字,那么你可以从样本变量中删除)

public String getRandomString(String prefix, int length) {
    String sample = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

    Random random = new Random();
    StringBuilder sb = new StringBuilder();
    sb.append(prefix);

    for (int index = 0; index < length; index++) {
        sb.append(sample.charAt(random.nextInt(sample.length())));
    }

    return sb.toString();
}