在实际应用中,大家使用的密码可以说多种多样,但是无论有多少,其组成不遑是有可打印字符组成的,我们可以认为
class CreateDic{
private int BitNum;
private String Str;
public void SetBitNum(int num)
{
BitNum=num;
}
public void SetStr(String str)
{
Str=str;
}
public int GetBitNum(){
return BitNum;
}
public String GetStr(){
return Str;
}
public List GetDic(){
int[] tmparray=new int[BitNum];
List final_list=new ArrayList();
String result="";
for(int i=0;i
tmparray[i]=0;
int nCount=0;
while(true)
{
result="";
for(int i=0;i
{
result+=Str.charAt(tmparray[i]);
}
nCount++;
System.out.println(result);
final_list.add(result+"\r\n");
//开始进行下一轮循环
int length=Str.length();
int mark=0;
for(int j=BitNum-1;j>=0;j--)
{
if(tmparray[j]==length-1){
if(j!=0){
continue;
}
else{
mark=1;
break;
}
}
else{
tmparray[j]++;
for(int k=j+1;k
{
tmparray[k]=0;
}
break;
}
}
if(mark==1){
break;
}
}
System.out.println("一共输出密码个数:"+nCount);
return final_list;
}
} 可以这么说如若组成密码的字符一共有3个分别是"abc",而密码长度是6,则BitNum可以设置为6 而Str的内容则为“abc”,这样可以获得所有可能组成的密码字符串即为返回值