zoukankan      html  css  js  c++  java
  • 随机生成长度为len的密码,且包括大写、小写英文字母和数字

    一道华三面试题,随机生成长度为len的密码,且包括大写、小写英文字母和数字,主要Random类的使用,random.nextInt(len)表示生成[0,len)整数。具体实现见下面代码,已经很详细了。

     
    package TestProject;
    
    import java.util.Random;
    import java.util.Scanner;
    /**
     * 随机生成长度为len的密码,且包括大写、小写英文字母和数字
     * @author xuhui
     */
    public class Main {
        static char[] bigNum = new char[26];
        static char[] smallNum = new char[26];
        static int[] num = new int[10];
        public static void main(String[] args){
            Scanner scanner = new Scanner(System.in);//控制台输入
            int len = scanner.nextInt();//输入密码长度,保证大于2
            String str = "";//密码
            init();
            Random random = new Random();
            //需要先随机生成len长度中,大写字母的个数,小写字母的个数以及数字的个数,且保证每个个数都不能为0
            int big_len = random.nextInt(len-2)+1;//random.nextInt(len)表示生成[0,len)整数,表示生成[1,len-1)整数;
            int small_len = random.nextInt(len-big_len-1)+1;
            int num_len = len-big_len-small_len;
            //每一位生成对应的密码
            for(int i=0;i<big_len;i++){
                str += bigNum[random.nextInt(26)];
            }
            for(int i=0;i<small_len;i++){
                str += smallNum[random.nextInt(26)];
            }
            for(int i=0;i<num_len;i++){
                str += num[random.nextInt(10)];
            }
            System.out.print(str);//只是生成前面是大写字母-小写字母-数字这样的顺序
            
        }
        public static void init(){
            for(int i=65;i<=90;i++){//生成大写字母表,对照ASIC表
                bigNum[i-65]=(char) i;
            }
            for(int i=97;i<=122;i++){//生成小写字母表
                smallNum[i-97]=(char) i;
            }
            for(int i=0;i<=9;i++){//生成数字表
                num[i]=i;
            }
        }
    }
     
  • 相关阅读:
    Intellij Idea 创建Web项目入门
    使用swagger作为restful api的doc文档生成
    SpringMVC中的参数绑定总结
    Spring注解@Resource和@Autowired区别对比
    java的(PO,VO,TO,BO,DAO,POJO)解释
    java有几种对象(PO,VO,DAO,BO,POJO)
    clone项目到本地
    修改虚拟机上Linux系统的IP地址
    虚拟机下CentOS 6.5配置IP地址的三种方法
    系统重启
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5761437.html
Copyright © 2011-2022 走看看