• java Random 随机密码


    /**
    * Created by xc on 2019/11/23
    * 生成随机密码:6位数字
    */
    public class Test7_4 {

    public static void main(String[] args) {
    System.out.println(randomPassword());//382630
    }

    public static String randomPassword() {
    char[] chars = new char[6];
    Random rnd = new Random();
    for (int i = 0; i < 6; i++) {
    chars[i] = (char) ('0' + rnd.nextInt(10));
    }
    return new String(chars);
    }

    }
    /**
     * Created by xc on 2019/11/23
     * 生成随机密码:简单8位
     * 8位密码,字符可能由大写字母、小写字母、数字和特殊符号组成
     */
    public class Test7_5 {
    
        private static final String SPECIAL_CHARS = "!@#$%^&*_=+-/";
    
        public static void main(String[] args) {
            System.out.println(randomPassword());//ejgY^14*
        }
    
        private static char nextChar(Random rnd) {
            switch (rnd.nextInt(4)) {
                case 0:
                    return (char) ('a' + rnd.nextInt(26));
                case 1:
                    return (char) ('A' + rnd.nextInt(26));
                case 2:
                    return (char) ('0' + rnd.nextInt(10));
                default:
                    return SPECIAL_CHARS.charAt(rnd.nextInt(SPECIAL_CHARS.length()));
            }
        }
    
        public static String randomPassword() {
            char[] chars = new char[8];
            Random rnd = new Random();
            for (int i = 0; i < 8; i++) {
                chars[i] = nextChar(rnd);
            }
            return new String(chars);
        }
    
    }
    /**
     * Created by xc on 2019/11/23
     * 生成随机密码:复杂8位
     */
    public class Test7_6 {
    
        private static final String SPECIAL_CHARS = "!@#$%^&*_=+-/";
    
        public static void main(String[] args) {
            System.out.println(randomPassword());//Q*82-/zQ
        }
    
        private static int nextIndex(char[] chars, Random rnd) {
            int index = rnd.nextInt(chars.length);
            while (chars[index] != 0) {
                index = rnd.nextInt(chars.length);
            }
            return index;
        }
    
        private static char nextSpecialChar(Random rnd) {
            return SPECIAL_CHARS.charAt(rnd.nextInt(SPECIAL_CHARS.length()));
        }
    
        private static char nextUpperlLetter(Random rnd) {
            return (char) ('A' + rnd.nextInt(26));
        }
    
        private static char nextLowerLetter(Random rnd) {
            return (char) ('a' + rnd.nextInt(26));
        }
    
        private static char nextNumLetter(Random rnd) {
            return (char) ('0' + rnd.nextInt(10));
        }
    
        public static String randomPassword() {
            char[] chars = new char[8];
            Random rnd = new Random();
            chars[nextIndex(chars, rnd)] = nextSpecialChar(rnd);
            chars[nextIndex(chars, rnd)] = nextUpperlLetter(rnd);
            chars[nextIndex(chars, rnd)] = nextLowerLetter(rnd);
            chars[nextIndex(chars, rnd)] = nextNumLetter(rnd);
            for (int i = 0; i < 8; i++) {
                if (chars[i] == 0) {
                    chars[i] = nextChar(rnd);
                }
            }
            return new String(chars);
        }
    
        private static char nextChar(Random rnd) {
            switch (rnd.nextInt(4)) {
                case 0:
                    return (char) ('a' + rnd.nextInt(26));
                case 1:
                    return (char) ('A' + rnd.nextInt(26));
                case 2:
                    return (char) ('0' + rnd.nextInt(10));
                default:
                    return SPECIAL_CHARS.charAt(rnd.nextInt(SPECIAL_CHARS.length()));
            }
        }
    
    }
  • 相关阅读:
    %2d
    将块中的文字设置成属性,即实现块中文字可拖动的功能
    获得块参照的插入点方法
    排序
    将几个实体对象变成一个块
    对克隆实体的类型转换
    对实体的克隆
    递归-顺序输出任意正整数各位
    递归-汉诺塔
    递归-最大公约数
  • 原文地址:https://www.cnblogs.com/ooo0/p/11927217.html
Copyright © 2020-2023  润新知