日期:2014-05-20 浏览次数:20976 次
package com.ricky.www;
public class Test {
    public String getPassword() {
        int index = 0;
        String[] p_array = new String[62];
        /**
         * 填充数组
         */
        for (int i = 0; i <= 9; i++) {
            p_array[index++] = i + "";
        }
        for (int i = 'A'; i <= 'Z'; i++) {
            char c = (char) i;
            p_array[index++] = new String(c + "");
        }
        for (int i = 'a'; i <= 'z'; i++) {
            char c = (char) i;
            p_array[index++] = new String(c + "");
        }
        /**
         * 返回6位的随机密码
         */
        StringBuffer password = new StringBuffer();
        for (int i = 0; i < 6; i++) {
            int random =(int)(Math.random() * 62);
            password.append(p_array[random]);
        }
        if (rule(password.toString())) {
            return password.toString();
        } else {
            return getPassword();
        }
    }
    private boolean rule(String password) {
        char[] p_array = password.toCharArray();
        // 因为1 + 2 + 3 + 4 +5 +6 = 1 * 6 + 15;类推
        int total = p_array[0] * 6 + 15;
        int sum = 0;
        for (int i = 0; i < 6; i++) {
            sum += p_array[i];
        }
        if (sum == total) {
            return false;
        }
        return true;
    }
    public static void main(String[] args) {
        String password = new Test().getPassword();
        System.out.print(password);
    }
}