美文网首页
Java之随机生成用户数据

Java之随机生成用户数据

作者: jty_cef8 | 来源:发表于2020-04-11 15:24 被阅读0次

    我们在进行单元测试或者运行一些需要虚拟用户的数据的模块的时候,总觉得手动添加这些数据很麻烦,特别是在遇到需要添加大量用户数据的时候,为了防止浪费大量时间,可以使用下面的几个方法来获得随机用户。

    先假设用户的数据只包含姓名、年龄、性别、ID

    1.随机生成姓名,这里是生成的中文名字,英文名同理

            Random random =new Random();
            //需要更多姓氏加在数组后即可
            String[] Surname = {"赵","钱","孙","李","周","吴","郑","王"};
            int index = random.nextInt(Surname.length-1);
            String name = Surname[index]; //获得一个随机的姓氏
    
            /* 从常用字中选取一个或两个字作为名 */
            if(random.nextBoolean()){
                name+=getLastName()+getLastName();
            }else {
                name+=getLastName();
            }
            return name;
    
    private static String getLastName() {
            String str = null;
            int highPos, lowPos;
            Random random = new Random();
            highPos = (176 + Math.abs(random.nextInt(71)));//区码,0xA0打头,从第16区开始,即0xB0=11*16=176,16~55一级汉字,56~87二级汉字
            random=new Random();
            lowPos = 161 + Math.abs(random.nextInt(94));//位码,0xA0打头,范围第1~94列
    
            byte[] bArr = new byte[2];
            bArr[0] = (new Integer(highPos)).byteValue();
            bArr[1] = (new Integer(lowPos)).byteValue();
            try {
                str = new String(bArr, "GB2312");   //区位码组合成汉字
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return str;
        }
    

    2.随机年龄(18-60),使用RandomUtils工具类一行就可以搞定

            RandomUtils.nextInt(18,60);
    

    3.随机性别,同样使用Random类

            String sex;
            Random random =new Random();
            if(random.nextBoolean()){
                sex = "男";
            }else {
                sex = "女";
            }
    

    4.随机ID,使用UUID,别看这家伙使用起来简单,但重复概率可比买彩票中5000万的概率还小,约等于零

     UUID uuid = UUID.randomUUID();
    

    相关文章

      网友评论

          本文标题:Java之随机生成用户数据

          本文链接:https://www.haomeiwen.com/subject/nryymhtx.html