手记

随机字符串的拼接和处理

思路:

思路:

  1. 需要十个随机数,那么就是一个 for 循环,循环十次了
  2. 需要的随机字符串是十位以内的,那么就获取一个 10 以内的随机整数
  3. for循环刚才获取到的 10 以内的随机整数,假如获取到的随机数为0的话,就赋值为 null
  4. 在这个随机整数的循环中,通过随机获取到0-9,a-z,A-Z这个字符串的任意字符,然后添加到 StringBuffer 中
  5. 在 do...while 中做字符串不为null 和重复的判断
  6. 和老师前面讲的就差不多了。

public class CollectionsTest {

    /**
     * 1.创建完 List<String> 之后,往其中添加十条随机字符串
     * 2.每条字符串的长度为 10 以内的随机整数
     * 3.每条字符串的每个字符都为随机生成的字符,字符可以重复
     * 4.每条随机字符串不可重复
     */
    public void testSort3() {
        String randoms = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        List<String> stringList = new ArrayList<>();
        String k;
        for (int i = 0; i < 10; i++) {
            do {
                Random random = new Random();
                int nextInt = random.nextInt(10);
                StringBuffer sb = new StringBuffer();
                if (nextInt == 0) {
                    k = null;
                    continue;
                }
                for (int j = 0; j < nextInt; j++) {
                    sb.append(randoms.charAt(random.nextInt(randoms.length())));
                }
                k = sb.toString();
            } while (k == null || stringList.contains(k));
            stringList.add(k);
            System.out.println("生成的随机数:" + k);
        }
        System.out.println("-------排序前----------");
        for (String in : stringList) {
            System.out.println(in);
        }
        Collections.sort(stringList);
        System.out.println("-------排序后----------");
        for (String in : stringList) {
            System.out.println(in);
        }
    }

    public static void main(String[] args) {
        CollectionsTest ct = new CollectionsTest();
        ct.testSort3();
    }
}
1人推荐
随时随地看视频
慕课网APP