利用Java實現隨機字符串


今天碰到一個有趣的題目:利用Collections的sort方法對泛型為String的集合進行排序,並輸出結果。要求:1. 創建完List<String>后,往其中插入10條隨機字符串;2. 每條字符串為10以內的隨機整數;3. 每條字符串的每個字符都是隨機生成,字符可重復,字符由數字及大小寫字母構成;4. 每條隨機字符串不可重復;看完之后起了興趣,就花時間做了一下,與大家共享。

 1 import java.util.ArrayList;
 2 import java.util.Collections;
 3 import java.util.List;
 4 import java.util.Random;
 5 
 6 public class Test430 {
 7      public List<String> testRandomString(int order){
 8 //       創建List<String>
 9          List<String> ls = new ArrayList<String>();
10          String ku = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
11 /*       定義一個StringBuilder用以保存生成的字符串,這里不選用String和StringBuffer(String長度
12        不可變,StringBuffer沒有StringBuilder快)*/
13          StringBuilder newStr = new StringBuilder();
14 //       創建一個Random用以生成偽隨機數,也可采用Math.random()來實現
15          Random r = new Random();
16          for(int j = 0;j<order;j++){
17             do{
18 //              將newStr置空
19                 newStr.delete(0,newStr.length());
20 //              得到字符串長度的隨機數
21                 int r1 = r.nextInt(10)+1;
22                 for(int i = 0;i<r1;i++){
23 //                  得到隨機字符
24                     int r2 = r.nextInt(ku.length());
25                     newStr.append(ku.charAt(r2));
26                 }
27             }while(ls.contains(newStr.toString()));
28              ls.add(newStr.toString());
29          }
30          return ls;
31      }
32      public static void main(String[] args){
33         Test430 t = new Test430();
34         List<String> tattedCode = t.testRandomString(3);
35          System.out.println("===排序前===");
36          for(String s:tattedCode){
37              System.out.println(s);
38          }
39         Collections.sort(tattedCode);
40          System.out.println("===排序后===");
41          for (String sec:tattedCode){
42              System.out.println(sec);
43          }
44      }
45 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM