2017-3-8随机生成字符串(不重复)

private void getStringList() {
        // TODO Auto-generated method stub
        String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        Random random = new Random();
        int flag = 0;
        String s = null;
        // 产生10条字符串
        while (flag < 10) {

            // 尝试生成一条字符串
            do {
                // 每条字符串的长度都是10以内的随机数,不包括10
                int length = random.nextInt(10);
                // 但是长度不能为0
                if (0 != length) {
                    // 申明一个字符数组,长度为随机数
                    char[] c = new char[length];
                    for (int j = 0; j < length; j++) {
                        // 从str这条字符串中随机取一个字符 放入字符数组
                        c[j] = str.charAt(random.nextInt(str.length()));

                    }
                    // 放完随机长度的字符数组后将字符数组变成字符串
                    s = String.valueOf(c);
                }
                // 判断stringlist中是否已有,有则重新生成
            } while (stringlist.contains(s));
            // 将字符串添加到字符序列中
            stringlist.add(s);
            flag++;

        }
        // 打印未排序前的stringlist
        for (String ss : stringlist) {
            System.out.println(ss);
        }

    }
点赞