Java字典生成算法講解
在實(shí)際應(yīng)用中,大家使用的密碼可以說多種多樣,但是無論有多少,其組成不遑是有可打印字符組成的,我們可以認(rèn)為
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");
//開始進(jì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("一共輸出密碼個(gè)數(shù):"+nCount);
return final_list;
}
}
可以這么說如若組成密碼的字符一共有3個(gè)分別是"abc",而密碼長度是6,則BitNum可以設(shè)置為6 而Str的內(nèi)容則為“abc”,這樣可以獲得所有可能組成的密碼字符串即為返回值
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
java poi導(dǎo)出excel時(shí)如何設(shè)置手動(dòng)換行
這篇文章主要介紹了java poi導(dǎo)出excel時(shí)如何設(shè)置手動(dòng)換行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
springBoot整合shiro如何解決讀取不到@value值問題
這篇文章主要介紹了springBoot整合shiro如何解決讀取不到@value值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,2023-08-08
MybatisPlus字段自動(dòng)填充失效,填充值為null的解決方案
這篇文章主要介紹了MybatisPlus字段自動(dòng)填充失效,填充值為null的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
基于application和bootstrap的加載順序及區(qū)別說明
這篇文章主要介紹了application和bootstrap的加載順序及區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Java數(shù)據(jù)庫連接池之proxool_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Proxool是一種Java數(shù)據(jù)庫連接池技術(shù)。方便易用,便于發(fā)現(xiàn)連接泄漏的情況2017-08-08
一招教你使用Java執(zhí)行g(shù)roovy腳本的兩種方式
本文主要介紹了一招教你使用Java執(zhí)行g(shù)roovy腳本的兩種方式,一種是通過腳本引擎ScriptEngine提供的eval(String)方法執(zhí)行腳本內(nèi)容,一種是執(zhí)行g(shù)roovy腳本,感興趣的可以了解一下2023-09-09
MyBatis-Plus中如何使用ResultMap的方法示例
本文主要介紹了MyBatis-Plus中如何使用ResultMap,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11

