public class RandomPwd {    /** * 生成随机明码:6位数字 */ public static String randomSixDigitsPwd() {        Random random = new Random();        char[] arr = new char[6];        StringBuilder sb = new StringBuilder();        for (int i = 0; i < arr.length; i++) {            int randomInt = random.nextInt(10);            arr[i] = (char)('0' + randomInt); // much better sb.append(randomInt);        }        System.out.println(new String(arr));        System.out.println(sb.toString());        return new String(arr);    }    public static void main(String[] args) {    }    public static String complicatedPwd() {        Random random = new Random();        char[] arr = new char[8];        arr[nextIndex(random, arr)] = nextSpecial(random);        arr[nextIndex(random, arr)] = nextUpper(random);        arr[nextIndex(random, arr)] = nextLower(random);        arr[nextIndex(random, arr)] = nextDigit(random);        for (int i = 0; i < 8; i++) {            if (arr[i] == 0) {                arr[i] = nextChar(random);            }        }        System.out.println(new String(arr));        return new String(arr);    }    public static char nextDigit(Random random) {        return (char)('0' + random.nextInt(10));    }    public static char nextUpper(Random random) {        return (char)('A' + random.nextInt(26));    }    public static char nextLower(Random random) {        return (char)('a' + random.nextInt(26));    }    public  static char nextSpecial(Random random) {        return specialChars.charAt(random.nextInt(specialChars.length()));    }    public static int nextIndex(Random random, char[] arr) {        int index = random.nextInt(arr.length);        while (arr[index] != 0) {            index = random.nextInt(arr.length);        }        return index;    }    /** * 生成随机明码:简单8位 * 至多要含一个大写字段、一个小写字段、一个特殊符号、一个数字 */ public static char nextChar(Random random) {        switch (random.nextInt(4)) {            case 0: return (char)('A' + random.nextInt(26));            case 1: return (char)('a' + random.nextInt(26));            case 2: return (char)('0' + random.nextInt(10));            default: return specialChars.charAt(random.nextInt(specialChars.length()));        }    }    private static final String specialChars = "!@#$%^&*()_+-=";    /** * 生成随机明码:简略8位 * 字符可能由大写字母、小写字母、数字和特殊符号组织 */ public static String randomEightPwd() {        Random random = new Random();        char[] arr = new char[8];        for (int i = 0; i < arr.length; i++) {            arr[i] = nextChar(random);        }        System.out.println(new String(arr));        return new String(arr);    }}