Java字典生成算法讲解

作者:世纪殇 时间:2023-11-25 00:17:29 

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


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,字典,算法
0
投稿

猜你喜欢

  • Spring Boot配置线程池拒绝策略的场景分析(妥善处理好溢出的任务)

    2022-08-05 07:12:24
  • Unity3D撤回命令开发详解

    2022-01-15 09:26:21
  • WinForm下 TextBox只允许输入数字的小例子

    2023-08-02 15:34:14
  • Mybatis 动态SQL的几种实现方法

    2023-11-10 12:15:15
  • Java算法比赛常用方法实例总结

    2023-11-28 07:15:26
  • Java生产者消费者模式实例分析

    2023-12-13 02:12:59
  • Java编程中使用throw关键字抛出异常的用法简介

    2023-08-27 17:04:19
  • Spring框架基于注解开发CRUD详解

    2021-08-04 03:39:03
  • Java TreeMap排序算法实例

    2023-02-25 10:26:20
  • Android 2.3.7.r1 camera录像过程中按menu菜单键时会停止录像

    2023-06-13 01:46:10
  • C语言内存操作函数详解

    2021-09-01 01:50:36
  • SpringBoot整合Elasticsearch7.2.0的实现方法

    2023-11-09 19:22:56
  • C#删除文件目录或文件的解决方法

    2022-12-13 09:25:03
  • 解决@Autowired注入static接口的问题

    2022-01-02 03:16:29
  • springboot实现基于aop的切面日志

    2022-09-09 11:53:11
  • 浅谈c++11线程的互斥量

    2023-02-14 18:00:44
  • 解决mybatis分页插件PageHelper导致自定义拦截器失效

    2023-10-13 07:24:29
  • python调用java模块SmartXLS和jpype修改excel文件的方法

    2023-06-11 16:59:21
  • 利用Thumbnailator轻松实现图片缩放、旋转与加水印

    2022-03-26 18:44:04
  • Android10 App启动Activity源码分析

    2023-08-21 04:13:04
  • asp之家 软件编程 m.aspxhome.com