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"); //開始進行下一輪循環(huá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”,這樣可以獲得所有可能組成的密碼字符串即為返回值
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
相關文章
springBoot整合shiro如何解決讀取不到@value值問題
這篇文章主要介紹了springBoot整合shiro如何解決讀取不到@value值問題,具有很好的參考價值,希望對大家有所幫助,2023-08-08MybatisPlus字段自動填充失效,填充值為null的解決方案
這篇文章主要介紹了MybatisPlus字段自動填充失效,填充值為null的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01基于application和bootstrap的加載順序及區(qū)別說明
這篇文章主要介紹了application和bootstrap的加載順序及區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07Java數據庫連接池之proxool_動力節(jié)點Java學院整理
Proxool是一種Java數據庫連接池技術。方便易用,便于發(fā)現連接泄漏的情況2017-08-08一招教你使用Java執(zhí)行groovy腳本的兩種方式
本文主要介紹了一招教你使用Java執(zhí)行groovy腳本的兩種方式,一種是通過腳本引擎ScriptEngine提供的eval(String)方法執(zhí)行腳本內容,一種是執(zhí)行groovy腳本,感興趣的可以了解一下2023-09-09MyBatis-Plus中如何使用ResultMap的方法示例
本文主要介紹了MyBatis-Plus中如何使用ResultMap,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11