利用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