[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