前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1-VI--随机数据生成

1-VI--随机数据生成

作者头像
张风捷特烈
发布2018-09-26 16:29:08
7100
发布2018-09-26 16:29:08
举报

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

1.范围随机整数:rangeInt(int s, int e)
代码语言:javascript
复制
    /**
     * 获取范围随机整数:如 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)
代码语言:javascript
复制
    /**
     * 给定字符串数组,返回随机个数字符串拼接
     *
     * @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.常量:
代码语言:javascript
复制
    /**
     * 小写字母集
     */
    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()
代码语言:javascript
复制
    /**
     * 获取随机英文名字
     *
     * @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
代码语言:javascript
复制
    /**
     * 将字符串仅首字母大写
     *
     * @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()
代码语言:javascript
复制
    /**
     * 获取随机中文名字
     * @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
代码语言:javascript
复制
    /**
     * 返回姓名集合
     * @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.使用
代码语言:javascript
复制
 ArrayList<String> names = DataUtils.getRandomName(10, true);
9.效果:
代码语言:javascript
复制
中文:程星、欧阳龙轩、王玉花、诸葛风、孔梦风、韩玉凤、杨洪日、九天风、魏玉、赵风霜
英文: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 你的喜欢与支持将是我最大的动力

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.范围随机整数:rangeInt(int s, int e)
  • 2.给定字符串数组,返回随机个数字符串拼接:rangeChar(int len, String[] chars)
  • 3.常量:
  • 4.获取随机英文名字:rangeEnName()
  • 5.将字符串仅首字母大写:StrUtil#upAChar
  • 6.获取随机中文名字:rangeCnName()
  • 7.top.toly.zutils.core.test.DataUtils#getRandomName
  • 8.使用
  • 9.效果:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档