1-VI--随机数据生成

作者: e4e52c116681 | 来源:发表于2018-08-27 14:06 被阅读7次

[1]在ListView篇之前,感觉有一点是需要提前准备的:数据
[2]也许会说:测试数据,用for循环出来不就行了吗? 但不好看啊。。。。
[3]为此打造一个随机数据的类

1.范围随机整数:rangeInt(int s, int e)
    /**
     * 获取范围随机整数:如 rangeInt(1,9)
     *
     * @param s 前数(包括)
     * @param e 后数(包括)
     * @return 范围随机整数
     */
    public static int rangeInt(int s, int e) {
        int max = Math.max(s, e);
        int min = Math.min(s, e) - 1;
        return (int) (min + Math.ceil(Math.random() * (max - min)));
    }
2.给定字符串数组,返回随机个数字符串拼接:rangeChar(int len, String[] chars)
    /**
     * 给定字符串数组,返回随机个数字符串拼接
     *
     * @param len   个数
     * @param chars 字符串数组
     * @return 随机个数字符串拼接
     */
    public static String rangeChar(int len, String[] chars) {
        if (len >= chars.length) {
            return "越界";
        }
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < len; i++) {
            sb.append(chars[rangeInt(0, chars.length - 1)]);
        }
        return sb.toString();
    }
3.常量:
    /**
     * 小写字母集
     */
    public static String[] abc = new String[]{
            "a", "b", "c", "d", "e", "f", "g",
            "h", "i", "j", "k", "l", "m", "n",
            "o", "p", "q", "r", "s", "t", "u",
            "v", "w", "x", "y", "z"};
    /**
     * 大写字母集
     */
    public static String[] ABC = new String[]{
            "A", "B", "C", "D", "E", "F", "G",
            "H", "I", "J", "K", "L", "M", "N",
            "O", "P", "Q", "R", "S", "T", "U",
            "V", "W", "X", "Y", "Z"};
    /**
     * 部分常见姓氏
     */
    public static String[] XING = new String[]{
            "赵", "钱", "孙", "李", "周", "吴", "郑",
            "王", "冯", "程", "楚", "魏", "蒋", "沈",
            "韩", "杨", "欧阳", "诸葛", "九天", "司马",
            "公孙", "上官", "包", "郭", "范", "唐",
            "林", "孔", "解"};

    public static String[] MING = new String[]{
            "风", "花", "雪", "月", "雷", "电", "风",
            "霜", "星", "阳", "日", "天", "龙", "凤",
            "洪", "梦", "瑶", "茜", "玉", "富", "轩",
            "玉", "宝", "智", "峰", "贵", "城", "强", "德", "美"};
4.获取随机英文名字:rangeEnName()
    /**
     * 获取随机英文名字
     *
     * @return 随机英文名字
     */
    public static String rangeEnName() {
        String firstName = StrUtil.upAChar(rangeChar(4, abc));
        String lastName = StrUtil.upAChar(rangeChar(6, abc));
        return firstName + " " + lastName;
    }
5.将字符串仅首字母大写:StrUtil#upAChar
    /**
     * 将字符串仅首字母大写
     *
     * @param str 待处理字符串
     * @return 将字符串仅首字母大写
     */
    public static String upAChar(String str) {
        StringBuilder sb = new StringBuilder();
        String lastChars = str.substring(1);
        String firstChar = str.split("")[0].toUpperCase();

        sb.append(firstChar);
        sb.append(lastChars);

        return sb.toString();
    }
6.获取随机中文名字:rangeCnName()
    /**
     * 获取随机中文名字
     * @return 随机中文名字
     */
    public static String rangeCnName() {
        StringBuilder sb = new StringBuilder();

        if (rangeInt(1, 2) == 1) {
            sb.append(rangeChar(1, XING));
            sb.append(rangeChar(1, MING));
        } else {
            sb.append(rangeChar(1, XING));
            sb.append(rangeChar(1, MING));
            sb.append(rangeChar(1, MING));
        }

        return sb.toString();
    }
7.top.toly.zutils.core.test.DataUtils#getRandomName
    /**
     * 返回姓名集合
     * @param len 个数
     * @param cn 是否中文
     * @return 返回姓名集合
     */
    public static ArrayList<String> getRandomName(int len, boolean cn) {

        ArrayList<String> names = new ArrayList<>();
        for (int i = 0; i < len; i++) {
            names.add(cn ? ZRandom.rangeCnName() : ZRandom.rangeEnName());
        }
        return names;
    }
8.使用
 ArrayList<String> names = DataUtils.getRandomName(10, true);
9.效果:
中文:程星、欧阳龙轩、王玉花、诸葛风、孔梦风、韩玉凤、杨洪日、九天风、魏玉、赵风霜
英文:Orrq Akqkmq、Qidp Kucdtq、Gmxj Ltqshu、Lrbm Iprtnh、Wteu Guvenq、Dlpc Lkfxaj、
Ahkj Yjprfb、Fane Wgrdug、Sxaq Hyxzad、Vupx Ldesah、Aomw Ucwbke

本文由张风捷特烈原创,转载请注明
更多安卓技术欢迎访问:https://www.jianshu.com/c/004f3fe34c94
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com
你的喜欢与支持将是我最大的动力

相关文章

  • 1-VI--随机数据生成

    [1]在ListView篇之前,感觉有一点是需要提前准备的:数据[2]也许会说:测试数据,用for循环出来不就行了...

  • C++生成随机数据方法

    生成随机int数组方法(数据未知) 生成随机Int序列(给定数据) 生成随机序列(给定数据)--模板函数

  • Jmeter——Dummy Sampler

    一、Dummy Sampler 二、随机函数生成当前时间 生成当前时间 三、随机函数生成数据 _Random随机函...

  • 2018-08-09Jmeter——Dummy Sampler

    一、Dummy Sampler 二、随机函数生成当前时间 生成当前时间 三、随机函数生成数据 Random

  • 数据可视化--数据看板

    声明:本文为原创,仅供学习交流,转载请标明出处,数据皆是随机生成,仅作为示列使用。 数据概述: 我们随机生成的数据...

  • Mock

    Versionmockjs: 1.0.1-beta3 mock 生成随机数组, 数组内数据部分随机 生成数组结果 ...

  • 随机数据集的构建与汇总处理丨数析学院

    课程简介 本节将使用随机数生成函数自行构建婴儿名字数据框,并介绍基本的数据框处理方法。数据来源 - 使用随机数生成...

  • 未明学院:Faker库批量造数据,解决Python数据来源问题(

    Faker数据生成第二期来了! 今天使用Faker来生成随机时间,随机邮箱,随机浏览器头信息,还有随机文章句子。 ...

  • 数据可视化<第三天>

    随机漫步 在本节中,我们将使用python来生成随机漫步数据再使用matplotlib呈现数据随机漫步:每次行走都...

  • 多线程环境下生成随机数

    生成伪随机数据 Java里有伪随机型和安全型两种随机数生成器。伪随机生成器根据特定公式将seed转换成新的伪随机数...

网友评论

    本文标题:1-VI--随机数据生成

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