Java字典生成算法讲解

 更新时间:2019年02月27日 11:10:32   作者:世纪殇  
今天小编就为大家分享一篇关于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”,这样可以获得所有可能组成的密码字符串即为返回值

总结

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

相关文章

  • Java Apollo是如何实现配置更新的

    Java Apollo是如何实现配置更新的

    这篇文章主要介绍了Java Apollo是如何实现配置更新的,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • Java中几种常用加密算法盘点

    Java中几种常用加密算法盘点

    随着互联网的发展,信息安全问题日益受到重视,加密算法在保证信息安全传输方面发挥着重要作用,本文将简要盘点几种常用的Java加密算法,介绍它们的基本原理、特点及应用情况,以帮助读者全面了解当前加密算法的发展状况,需要的朋友可以参考下
    2023-11-11
  • 从application.properties配置文件获取的汉字乱码的解决方法

    从application.properties配置文件获取的汉字乱码的解决方法

    平时从配置文件各种读取配置参数都正常,但是有时候放了个中文就乱码,你肯定试过网上好多方法,都没解决,那么来看下面,恭喜你终于找这里了,本文给大家介绍了从application.properties配置文件获取的汉字乱码的解决方法,需要的朋友可以参考下
    2024-03-03
  • Spring-data-JPA使用时碰到的问题以及解决方案

    Spring-data-JPA使用时碰到的问题以及解决方案

    这篇文章主要介绍了Spring-data-JPA使用时碰到的问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java NIO 文件通道 FileChannel 用法及原理

    Java NIO 文件通道 FileChannel 用法及原理

    这篇文章主要介绍了Java NIO 文件通道 FileChannel 用法和原理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java基于装饰者模式实现的染色馒头案例详解

    Java基于装饰者模式实现的染色馒头案例详解

    这篇文章主要介绍了Java基于装饰者模式实现的染色馒头案例,简单描述了装饰者模式的概念、原理及Java使用装饰者模式的相关实现步骤、操作技巧与注意事项,需要的朋友可以参考下
    2018-05-05
  • SpringBoot异步实现 的8种方式

    SpringBoot异步实现 的8种方式

    在同步操作中,执行到 发送短信 的时候,我们必须等待这个方法彻底执行完才能执行 赠送积分 这个操作,如果 赠送积分 这个动作执行时间较长,发送短信需要等待,这就是典型的同步场景,这篇文章主要介绍了SpringBoot异步实现 的8种方式,需要的朋友可以参考下
    2023-11-11
  • 关于Seata基本使用及二阶提交流程

    关于Seata基本使用及二阶提交流程

    这篇文章主要介绍了关于Seata基本使用及二阶提交流程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • Java基础之Object类详解

    Java基础之Object类详解

    这篇文章主要介绍了Java基础之Object类详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-05-05
  • Spring Boot如何获取maven打包时间

    Spring Boot如何获取maven打包时间

    这篇文章主要介绍了Spring Boot如何获取maven打包时间,首先引入maven打包插件,本文分步骤给大家介绍的非常详细,需要的朋友参考下吧
    2024-03-03

最新评论