// 方法1:length爲產生的位數 public static String getRandomString(int length) { // 定義length個字符串(A-Z,a-z?0-9)即62位; String str ="zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPASDFGHJKLZXCVBNM1234567890"; //String str = "1234567890"; // 由Random生成隨機隨機數 Random random = new Random(); StringBuffer sb = new StringBuffer(); // 長度爲幾就循環幾回 for (int i = 0; i < length; ++i) { // 產生0-61的數字 int number = random.nextInt(62); // 產生0-10的數字 //int number = random.nextInt(10); // 將產生的數字經過length次承載到sb sb.append(str.charAt(number)); } // 將承載的字符轉換成字符串 return sb.toString(); } /** * 第二種方法 */ public String getRandomString2(int length) { // 產生隨機數 Random random = new Random(); StringBuffer sb = new StringBuffer(); // 循環length次 for (int i = 0; i < length; i++) { // 產生0-2個隨機數,既與a-z,A-Z?0-9三種可能 int number = random.nextInt(3); long result = 0; switch (number) { // 若是number產生的是數字0 case 0: // 產生A-Z的ASCII碼 result = Math.round(Math.random() * 25 + 65); // 將ASCII碼轉換成字符 sb.append(String.valueOf((char) result)); break; case 1: // 產生a-z的ASCII碼 result = Math.round(Math.random() * 25 + 97); sb.append(String.valueOf((char) result)); break; case 2: // 產生0-9的數字 sb.append(String.valueOf(new Random().nextInt(10))); break; } } return sb.toString(); }