今天小编就为大家分享一篇关于Java字典生成算法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
在实际应用中,大家使用的密码可以说多种多样,但是无论有多少,其组成不遑是有可打印字符组成的,我们可以认为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<string> getdic(){
int[] tmparray=new int[bitnum];
list<string> final_list=new arraylist<string>();
string result="";
for(int i=0;i<bitnum;i++)
tmparray[i]=0;
int ncount=0;
while(true)
{
result="";
for(int i=0;i<bitnum;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<bitnum;k++)
{
tmparray[k]=0;
}
break;
}
}
if(mark==1){
break;
}
}
system.out.println("一共输出密码个数:"+ncount);
return final_list;
}
} 可以这么说如若组成密码的字符一共有3个分别是"abc",而密码长度是6,则bitnum可以设置为6 而str的内容则为“abc”,这样可以获得所有可能组成的密码字符串即为返回值
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对CodeAE代码之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/dasgk/article/details/49761857
|