好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Java字典生成算法讲解

在实际应用中,大家使用的密码可以说多种多样,但是无论有多少,其组成不遑是有可打印字符组成的,我们可以认为

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

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],这样可以获得所有可能组成的密码字符串即为返回值

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/dasgk/article/details/49761857

查看更多关于Java字典生成算法讲解的详细内容...

  阅读:18次