问答详情
源自:6-5 应用 Collections.sort() 实现 List 排序

生成随机字符串

看了一些同学的代码,基本都是自己写一个字符串库,把大小写字母还有0~9数字添加进去,这样做的话是不是漏掉了很多字符,比如一些标点符号什么的,多以问下有没有更全一点的方法,问度娘也基本都是这种自己添加的方法,这样是不是漏掉了一部分字符,,所以说还算不上随机......

提问者:街边七号 2017-10-10 17:29

个回答

  • 慕莱坞8474091
    2017-10-11 20:55:37

    /*我通过SACII码实现的*/

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

    StringBuffer sb = new StringBuffer(); //用于存放随机字符,形成随机字符串

    int x;

    int j;

    char m ;

    String k;

    Random ram = new Random();

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

    do{

    x = ram.nextInt(9)+1; //随机生成字符串的长度

    for(j=0 ; j<x ; j++){

    m=(char) (ram.nextInt(126)+1); //将生成的字符添加到字符串数组中

    sb.append(m);

    }

    k=sb.toString(); //将Buffer转换成字符串

    }while(sbList.contains(k)); //保证字符串不能重复

    sbList.add(k); //添加字符串到List中

    sb.delete(0, x); //删除缓存中已有的字符

    }