比较全的java代码生成工具(简单易用的随机数据生成器)
比较全的java代码生成工具(简单易用的随机数据生成器)体育金融互联网个人信息教育
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个java随机数据生成器——common-random。

简单易用的随机数据生成器。一般用于开发和测试阶段的数据填充、模拟、仿真研究、演示等场景。可以集成到各种类型的java项目中使用。特点:
- 非常轻量级(不到1M),容易集成,无需过多第三方依赖
 - 简单方便,无需编写冗余代码
 - 生成的随机数据比较接近真实数据
 
- Maven
 
<dependency>
    <groupId>com.apifan.common</groupId>
    <artifactId>common-random</artifactId>
    <version>1.0.17</version>
</dependency>
- Gradle
 
implementation 'com.apifan.common:common-random:1.0.17'支持的随机数据类型
    
日期时间
- 随机日期
 - 随机时间
 - 随机时间戳
 - 随机时区名称
 
地理
- 随机省份和城市
 - 随机国家或地区(基于ISO 3166-1标准)
 - 虚拟经纬度
 - 随机邮编
 - 虚拟联系地址
 - 随机固话区号
 - 虚拟固话号码
 
互联网
- 虚拟邮箱地址
 - 虚拟域名
 - 虚拟静态URL
 - 虚拟IPv4地址
 - 虚拟IPv6地址
 - 虚拟网卡MAC地址
 - 随机强密码
 - 随机User-Agent
 - 随机端口号
 - 虚拟app名称
 - 虚拟app bundle id
 - 虚拟app版本号
 
个人信息
- 虚拟中文人名
 - 虚拟英文人名
 - 虚拟身份证号码
 - 虚拟网络昵称
 - 虚拟拼音网络昵称
 - 虚拟手机号码
 - 虚拟QQ号码
 - 虚拟非主流QQ网名
 - 随机民族名称
 
教育
- 随机学历
 - 虚拟小学名称、年级、班级
 - 虚拟中学名称、年级、班级
 - 随机高校及专业名称
 
金融
- 随机股票名称 股票代码
 - 虚拟日K线数据
 - 随机开放式基金名称 基金代码
 - 随机货币信息
 - 虚拟银行卡(借记卡及信用卡)号码
 
体育
- 随机六大足球联赛球队名称
 - 随机篮球联赛球队名称
 - 随机国家及地区的足球代表队名称
 
其它
- 随机数字
 - 随机汉字
 - 随机成语
 - 随机唐诗
 - 虚拟车牌号
 - 随机热门手机型号
 - 随机RGB颜色值
 - 随机HEX颜色值
 - 随机中文短句
 - 随机英文文本
 - 虚拟企业及部门名称
 - 随机营销号文案
 - 随机ISBN
 - 随机EAN商品编码
 - 随机行业分类
 - 随机统一社会信用代码
 - 数据生成工具
 
- 随机数字
 
//生成1个1~101(不含)之间的随机整数
int a = NumberSource.getInstance().randomInt(1  101);
//生成8个1~101(不含)之间的随机整数
int[] b = NumberSource.getInstance().randomInt(1  101  8);
//生成1个10000000000~20000000001(不含)之间的随机长整数
long c = NumberSource.getInstance().randomLong(10000000000L  20000000001L);
//生成9个10000000000~20000000001(不含)之间的随机长整数
long[] d = NumberSource.getInstance().randomLong(10000000000L  20000000001L  9);
//生成1个0.01~0.51(不含)之间的随机整数
double e = NumberSource.getInstance().randomDouble(0.01D  0.51D);
//生成8个0.01~0.51(不含)之间的随机整数
double[] f = NumberSource.getInstance().randomDouble(0.01D  0.51D  8);
//生成随机百分比
BigDecimal percent = NumberSource.getInstance().randomPercent();
    
生成1个1~101(不含)之间的随机整数:47
生成8个1~101(不含)之间的随机整数:25 55 75 34 70 2 38 54 
生成1个10000000000~20000000001(不含)之间的随机长整数:17191638640
生成3个10000000000~20000000001(不含)之间的随机长整数:13450274770 10095565957 12148932674 
生成1个0.01~0.51(不含)之间的随机整数:0.24144667734933373
生成3个0.01~0.51(不含)之间的随机整数:0.09163703451179427 0.18277293726405042 0.3161348700949757 
生成随机百分比:0.2715
- 随机人名
 
//生成1个随机中文人名(性别随机)
String k = PersonInfoSource.getInstance().randomChineseName();
//生成1个随机男性中文人名
String k2 = PersonInfoSource.getInstance().randomMaleChineseName();
//生成1个随机女性中文人名
String k3 = PersonInfoSource.getInstance().randomFemaleChineseName();
//生成1个随机英文人名
String l = PersonInfoSource.getInstance().randomEnglishName();
    
生成1个随机中文人名(性别随机):万春
生成1个随机男性中文人名:巫民石
生成1个随机女性中文人名:龚苑
生成1个随机英文人名:Mariko Groder
生成1个随机中文人名(性别随机):苏健田
生成1个随机男性中文人名:郭立
生成1个随机女性中文人名:苟苑
生成1个随机英文人名:Argelia Matejka
- 随机生成符合规则的虚拟身份证号码
 
//生成1个随机的虚拟身份证号码,地区为广西壮族自治区,男性,出生日期在1990年11月11日至1999年12月12日之间
LocalDate beginDate = LocalDate.of(1990 11 11);
LocalDate endDate = LocalDate.of(1999 12 12); 
String id1 = PersonInfoSource.getInstance().randomMaleIdCard("广西壮族自治区"  beginDate  endDate);
//生成1个随机的虚拟身份证号码,地区为河北省,女性,出生日期在2001年1月11日至2008年2月22日之间
LocalDate beginDate2 = LocalDate.of(2001 1 11);
LocalDate endDate2 = LocalDate.of(2008 2 22);
String id2 = PersonInfoSource.getInstance().randomFemaleIdCard("河北省"  beginDate2  endDate2);
//生成1个随机的虚拟身份证号码,地区为广西壮族自治区,男性,年龄为18岁
String id3 = PersonInfoSource.getInstance().randomMaleIdCard("广西壮族自治区"  18);
//生成1个随机的虚拟身份证号码,地区为河北省,女性,年龄为19岁
String id4 = PersonInfoSource.getInstance().randomFemaleIdCard("河北省"  19);
    
生成1个随机的虚拟身份证号码,地区为广西壮族自治区,男性,出生日期在1990年11月11日至1999年12月12日之间:450305199609110414
生成1个随机的虚拟身份证号码,地区为河北省,女性,出生日期在2001年1月11日至2008年2月22日之间:130407200201256603
生成1个随机的虚拟身份证号码,地区为广西壮族自治区,男性,年龄为18岁:450700200412270815
生成1个随机的虚拟身份证号码,地区为河北省,女性,年龄为19岁:131123200301076583
生成1个随机的虚拟身份证号码,地区为广西壮族自治区,男性,出生日期在1990年11月11日至1999年12月12日之间:450903199211158696
生成1个随机的虚拟身份证号码,地区为河北省,女性,出生日期在2001年1月11日至2008年2月22日之间:130306200410286268
生成1个随机的虚拟身份证号码,地区为广西壮族自治区,男性,年龄为18岁:450602200406119876
生成1个随机的虚拟身份证号码,地区为河北省,女性,年龄为19岁:130982200302185581
    
-END-
开源协议:Apache2.0
开源地址:https://github.com/yindz/common-random




