1. 程式人生 > 實用技巧 >Java隨機字串生成

Java隨機字串生成

     //方法一  需要包:import java.util.Random;
        //生成的字串每個位置都有可能是str中的一個字母或數字
        int length = 12;
        String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        Random random = new Random();
        StringBuilder stringBuilder = new StringBuilder();
        for(int i = 0;i<length;i++){
            
//random.nextInt(62)會生成一個範圍在0~x(不包含X)內的任意正整數 int num = random.nextInt(62); stringBuilder.append(str.charAt(num)); } System.out.println(stringBuilder); //方法二 org.apache.commons.lang包下有一個RandomStringUtils類,其中有一個randomAlphanumeric(int length)函式, // 可以隨機生成一個長度為length的字串。
String string= RandomStringUtils.randomAlphanumeric(12); System.out.println(string); //產生5位長度的隨機字串,中文環境下是亂碼 System.out.println(RandomStringUtils.random(5)); //使用指定的字元生成5位長度的隨機字串 System.out.println(RandomStringUtils.random(5, new char[]{'a','b','c','d','e','f', '1', '2', '3'}));
//生成指定長度的字母和數字的隨機組合字串 System.out.println(RandomStringUtils.randomAlphanumeric(5)); //生成隨機數字字串 System.out.println(RandomStringUtils.randomNumeric(5)); //生成隨機[a-z]字串,包含大小寫 System.out.println(RandomStringUtils.randomAlphabetic(5)); //生成從ASCII 32到126組成的隨機字串 System.out.println(RandomStringUtils.randomAscii(4)); //方法三 可以指定某個位置是a-z、A-Z或是0-9 Random random1=new Random(); StringBuffer sb=new StringBuffer(); for(int i=0;i<length;i++){ int number=random1.nextInt(3); long result=0; switch(number){ case 0: //對應A-Z 參考ASCII編碼表 result=Math.round(Math.random()*25+65); 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: //對應數字 sb.append(String.valueOf(new Random().nextInt(10))); break; } } System.out.println(sb);