1-VI--随机数据生成

  1. 云栖社区>
  2. 博客>
  3. 正文

1-VI--随机数据生成

张风捷特烈 2018-08-27 14:06:00 浏览462
展开阅读全文

[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

后记、

1.声明:

[1]本文由张风捷特烈原创,转载请注明
[2]欢迎广大编程爱好者共同交流
[3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
[4]你的喜欢与支持将是我最大的动力

2.连接传送门:

更多安卓技术欢迎访问:安卓技术栈
我的github地址:欢迎star
简书首发,腾讯云+社区同步更新
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com

3.联系我

QQ:1981462002
邮箱:1981462002@qq.com
微信:zdl1994328

4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
公众号.jpg

网友评论

登录后评论
0/500
评论
张风捷特烈
+ 关注