我能够在刷新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
方法可以产生多少种可能的字符串组合?是否有内置的方法,类或可能的算法来确定这个?谢谢!
答案 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);
}