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”,这样可以获得所有可能组成的密码字符串即为返回值
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
赞 (0)