为了账号安全,请及时绑定邮箱和手机立即绑定

交个作业~~main函数就不写了,分享一下方法

/**

* 3.对String泛型的List进行排序

* 创建String泛型的Lits,添加十个乱序的String元素

* 每条字符串的长度为10以内的随即整数

* 每条字符串的每个字符都为随即生成的字符,字符可以重复

* 每条随即字符串不可重复

* 调用sort方法,再次输出排序后的顺序

*/

public void testSort3() {

List<String> strtinglist = new ArrayList<String>();

Random random = new Random();

Integer k;

String str = "abcedfghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

for (int i = 0; i < 10; i++) {

StringBuffer newstring = new StringBuffer();

do {

k = random.nextInt(10);

for (int j = 0; j < k+1; j++) {

newstring.append(str.charAt(random.nextInt(str.length())));

}

}while(strtinglist.contains(newstring));

System.out.println("将要添加字符串:"+"'"+newstring.toString()+"'");

strtinglist.add(newstring.toString());

}

System.out.println("----------排序前---------");

for (String string : strtinglist) {

System.out.println("元素"+string);

}

Collections.sort(strtinglist);

System.out.println("----------排序后---------");

for (String string : strtinglist) {

System.out.println("元素"+string);

}

}


正在回答

2 回答

    public void testSort() {
        // 随机生成十条字符串
        for(int i=0; i<10; i++) {
            StringBuilder str = new StringBuilder();
            Random random = new Random();
            // 长度为10以内的随机整数
            int l = random.nextInt(10);
            for(int j=0; j<l; j++) {
                char ranChar = (char) Math.round(Math.random()*51+65);
                // 去掉特殊字符
                if(ranChar<91 || ranChar>96) 
                    str.append(ranChar);
            }
            strings.add(str.toString());
        }
        System.out.println("------------排序前-------------");
        for(String str : strings) {
            System.out.println(strings.indexOf(str)+1+":"+str);
        }
        System.out.println("------------排序后-------------");
        Collections.sort(strings);
        for(String str : strings) {
            System.out.println(strings.indexOf(str)+1+":"+str);
        }
    }


1 回复 有任何疑惑可以回复我~

这样好像不太行 应该每次循环的最后清空一次newstring

int nsl= newstring.length();

newstring.delete(0,nsl);


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409792    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

交个作业~~main函数就不写了,分享一下方法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信