今天小編就爲大家分享一篇關於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”,這樣可以獲得所有可能組成的密碼字符串即爲返回值
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接