继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

List排序的课后小作业~~不定长随机字符串的排序

Edward_Xie
关注TA
已关注
手记 3
粉丝 0
获赞 17
    public void stringSort(){

        List<String> stringList=new ArrayList<String>();
        Random random=new Random();
        int length,ch;//length保存每个元素的长度,ch保存合法的ascii码值
        //一层循环十次完成十个元素的生成和添加
        for(int i=0;i<10;i++){
            char s[]; //定义相应长度的字符型数组
            do {
                length = random.nextInt(10); //随机生成元素的长度
                s = new char[length];
                //二层循环为字符数组的每个元素赋随机char值
                for (int j = 0; j < length; j++) {
                    //获取随机ascii值,并判断生成的ascii码值是否为指定的0-9、a-z、A-Z
                    do {
                        ch = random.nextInt(127);
                    } while (!((47 < ch && ch < 58)  (64 < ch && ch < 91)  (96 < ch && ch < 123)));
                    s[j] = (char) ch;//将合法的ascii值转化为char值并赋值给数组
                }
            } while (stringList.contains(String.valueOf(s)));//判断list中是否已有该元素
            stringList.add(String.valueOf(s));//调用add函数将char数组保存的元素添加到list中
        }

        //通过foreach打印输出排序前的list
        System.out.println("-----排序前-----");
        for(String s:stringList){
            System.out.println("元素:"+s);
        }
        //用collection.sort对list进行排序
        Collections.sort(stringList);
        //通过foreach打印输出排序后的list
        System.out.println("-----排序后-----");
        for(String s:stringList){
            System.out.println("元素:"+s);
        }

    }
打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP

热门评论

代码很不错,用ascll码这招比用“asdfghjkl”这种简便很多,不过个人建议还是少用多层嵌套,这样代码的可读性会大大的降低的

查看全部评论