java隨機生成8位密碼-包括數字、大小寫字母、特殊符號。
//返回隨機產生的8位數 public String getRandomPassword(int len) { String result= this.makeRandomPassword(len); if (result.matches(".*[a-z]{1,}.*") && result.matches(".*[A-Z]{1,}.*") && result.matches(".*\\d{1,}.*") && result.matches(".*[~!@#$%^&*\\.?]{1,}.*")) { return result; } result = makeRandomPassword(len); } //產生8位隨機數 public String makeRandomPassword(int len){ char charr[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890~!@#$%^&*.?".toCharArray(); StringBuilder sb = new StringBuilder(); Random r = new Random(); for (int x = 0; x < len; ++x) { sb.append(charr[r.nextInt(charr.length)]); } return sb.toString(); }
完整的測試例子:
public class TestRandomNumber { public TestRandomNumber() { } public static void main(String[] args) { String randomNum = getRandomPassword(8); System.out.println(randomNum); } /** * 返回隨機產生的8位數 */ public static String getRandomPassword(int len) { String result = makeRandomPassword(len); if (result.matches(".*[a-z]{1,}.*") && result.matches(".*[A-Z]{1,}.*") && result.matches(".*\\d{1,}.*") && result.matches(".*[~!@#$%^&*\\.?]{1,}.*")) { return result; } result = makeRandomPassword(len); return result; } /** * 產生8位隨機數 * * @param len 長度 * @return */ public static String makeRandomPassword(int len) { char charr[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.".toCharArray(); StringBuilder sb = new StringBuilder(); Random r = new Random(); for (int x = 0; x < len; ++x) { sb.append(charr[r.nextInt(charr.length)]); } return sb.toString(); }