确定Java中String的可能组合数

时间:2015-01-21 10:08:30

标签: java android

我能够在刷新Java知识后弄清楚如何生成随机的字母数字字符串。这是我的方法:

private static final String ALPHA_NUMERIC_STRING = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

 String idGenerator(int count){
        StringBuilder builder = new StringBuilder();

        while (count-- != 0) {

            int character = (int)(Math.random()*ALPHA_NUMERIC_STRING.length());

            builder.append(ALPHA_NUMERIC_STRING.charAt(character));

        }

        return builder.toString();
}

但是,我想知道我的idGenerator方法可以产生多少种可能的字符串组合?是否有内置的方法,类或可能的算法来确定这个?谢谢!

2 个答案:

答案 0 :(得分:3)

一种辅助方法:

public static int getPossibleCombinationsCount(int count) {
    return Math.pow(ALPHA_NUMERIC_STRING.length() , count);
}

答案 1 :(得分:3)

应该有大量的组合,所以,恕我直言,BigInteger是 正确的选择

public static BigInteger getPossibleCombinationsCount(int count) {
  return BigInteger.valueOf(ALPHA_NUMERIC_STRING.length()).pow(count);
}