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

java第三季<6-5>:生成随机字符串列表并排序之实现

charsandrew
关注TA
已关注
手记 4
粉丝 13
获赞 148

这个小练习难度在于生成符合要求的随机字符串。

package learn.java1;
    import java.util.*;
public class SortListString {
    //1. 创建一个字符串列表
    private static List<String> myList=new ArrayList<String>();

    public static void main(String[] args){
        SortListString sls=new SortListString();
        String randomString;
        //2. 往列表里添加10个不重复的随机字符串,调用getRandomString()方法获得随机字符串
        for(int i=0;i<10;i++){          
            do{
                randomString=sls.getRandomString();
            }while(myList.contains(randomString));
            myList.add(randomString);
            System.out.println("添加了新字符串"+ randomString);
        }
        //3. 打印排序前的字符串列表
        System.out.println("----------排序前--------------");
        for(String each:myList){
            System.out.println(each);
        }
        //4. 对字符串列表进行排序,打印排序后的字符串列表
        Collections.sort(myList);
        System.out.println("------------排序后--------------------");
        for(String each:myList){
            System.out.println(each);
        }
    }
    //获得随机10以内随机长度字符串的方法
    public String getRandomString(){
        //创建一个包含需要字符的字符串,为什么没有一个生成随机字符的方法呢?
        String bases="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        Random random=new Random();
        //这里很有意思,写成nextInt(10)的时候,每次都会生成0,不知道它们怎么算的,下面这样就不会 生成0了
        int length=random.nextInt(9)+1;
        //StringBuffer类似于一个可变字符串,有很多方法可用
        StringBuffer randomString=new StringBuffer();
        for(int i=0;i<length;i++){
            randomString.append(bases.charAt(random.nextInt(62)));              
        }
        return randomString.toString();
    }
}

这里面random的用法非常有意思,有时间会去研究一下。。。

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