Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
C

common-random

> 编程语言
Open source

简单易用的随机数据生成器。生成各种比较真实的假数据。一般用于开发和测试阶段的数据填充模拟。支持各类中国特色本地化的数据格式。An easy-to use random data generator. Generally used for data filling, simulation, demonstration a

656 stars0 likes2 views
WebsiteGitHub

About

简单易用的随机数据生成器。生成各种比较真实的假数据。一般用于开发和测试阶段的数据填充模拟。支持各类中国特色本地化的数据格式。An easy-to use random data generator. Generally used for data filling, simulation, demonstration a

随机数据生成器

概述

简单易用的随机数据生成器。一般用于开发和测试阶段的数据填充、模拟、仿真研究、演示等场景。可以集成到各种类型的java项目中使用。

优点

  • 非常轻量级(不到1M 由于基础数据增加,体积已达到1.2M),容易集成,无需过多第三方依赖
  • 简单方便,无需编写冗余代码
  • 生成的随机数据比较接近真实数据

快速开始

  • 如何使用
  • 支持哪些随机数据类型
  • JSON库的相关说明
  • 拼音库的相关说明
  • 常见问题
  • 注意事项
  • 最近版本历史

支持的随机数据类型

日期时间

  • 随机日期
  • 随机时间
  • 随机时间戳
  • 随机时区名称

地理

  • 随机省份和城市
  • 随机国家或地区(基于ISO 3166-1标准)
  • 虚拟经纬度
  • 随机邮编
  • 虚拟联系地址
  • 随机固话区号
  • 虚拟固话号码

互联网

  • 虚拟邮箱地址
  • 虚拟域名
  • 虚拟静态URL
  • 虚拟IPv4地址
  • 虚拟IPv6地址
  • 虚拟网卡MAC地址
  • 随机强密码
  • 随机User-Agent
  • 随机端口号
  • 虚拟app名称
  • 虚拟app bundle id
  • 虚拟app版本号

个人信息

  • 虚拟中文人名
  • 虚拟英文人名
  • 虚拟身份证号码
  • 虚拟网络昵称
  • 虚拟拼音网络昵称
  • 虚拟手机号码
  • 虚拟QQ号码
  • 虚拟非主流QQ网名
  • 随机民族名称

教育

  • 随机学历
  • 虚拟小学名称、年级、班级
  • 虚拟中学名称、年级、班级
  • 随机高校及专业名称

金融

  • 随机股票名称+股票代码
  • 虚拟日K线数据
  • 随机开放式基金名称+基金代码
  • 随机货币信息
  • 虚拟银行卡(借记卡及信用卡)号码

体育

  • 随机六大足球联赛球队名称
  • 随机篮球联赛球队名称
  • 随机国家及地区的足球代表队名称

其它

  • 随机数字
  • 随机汉字
  • 随机成语
  • 随机唐诗
  • 虚拟车牌号
  • 随机热门手机型号
  • 随机RGB颜色值
  • 随机HEX颜色值
  • 随机中文短句
  • 随机英文文本
  • 虚拟企业及部门名称
  • 随机营销号文案
  • 随机ISBN
  • 随机EAN商品编码
  • 随机行业分类
  • 随机统一社会信用代码
  • 数据生成工具

如何使用

Java版本要求

1.8或更高

配置依赖

最新1.1.x版本已发布中央仓库(请注意groupId已经变了):

xml

    io.github.yindz
    common-random
    1.1.0

1.0.x旧版本:

xml

    com.apifan.random
    common-random
    1.0.21

基础用法

统一入口

…

随机数字

…

随机汉字

//生成1个随机汉字
RandomSource.languageSource().randomChinese();

//生成4个随机汉字
RandomSource.languageSource().randomChinese(4);

随机成语

RandomSource.languageSource().randomChineseIdiom();

随机唐诗

RandomSource.languageSource().randomTangPoem();

随机人名

中文名
//生成1个随机中文人名(性别随机)
RandomSource.personInfoSource().randomChineseName();

//生成1个随机男性中文人名
RandomSource.personInfoSource().randomMaleChineseName();

//生成1个随机女性中文人名
RandomSource.personInfoSource().randomFemaleChineseName();
英文名
//生成1个随机英文人名
RandomSource.personInfoSource().randomEnglishName();

随机生成符合规则的虚拟身份证号码

…

注意:

  • 身份证号码前6位地区码数据取自民政部网站2019年公开数据
  • 随机生成的虚拟身份证号码符合校验规则,但有可能与真实号码相同(纯属巧合)

随机虚拟银行卡号码

…

注意:

  • 随机生成的虚拟银行卡号码只是前缀和位数符合规则,不会与现实中的真实卡号产生重合,无法用于支付,仅供模拟测试/仿真/项目演示等用途

随机中国大陆手机号

//生成1个随机中国大陆手机号
RandomSource.personInfoSource().randomChineseMobile();

随机邮箱地址

//生成1个随机邮箱地址,后缀随机,邮箱用户名最大长度为10
RandomSource.internetSource().randomEmail(10);

//生成1个随机邮箱地址,后缀为163.com,邮箱用户名最大长度为10
RandomSource.internetSource().randomEmail(10, "163.com");

随机域名

//生成1个随机域名,域名最大长度为16
RandomSource.internetSource().randomDomain(16);

随机ipv4地址

//生成1个随机公网IPv4地址
String pub = RandomSource.internetSource().randomPublicIpv4();

//生成1个随机私有(内网)IPv4地址
String prv = RandomSource.internetSource().randomPrivateIpv4();

随机ipv6地址

//生成1个随机ipv6地址
String ipv6 = RandomSource.internetSource().randomIpV6();

随机端口号

//生成1个随机端口号
RandomSource.internetSource().randomPort();

随机app信息

//生成1个随机App名称
String appName = RandomSource.internetSource().randomAppName();

//生成1个随机App Bundle ID
String appBundleID = RandomSource.internetSource().randomAppBundleId();

//生成1个随机App版本号
String appVersionCode = RandomSource.internetSource().randomAppVersionCode();

随机静态url

//生成1个随机静态url,后缀为jpg
String url = RandomSource.internetSource().randomStaticUrl("jpg");

随机日期

…

随机时间

//生成过去7天范围内的随机时间
LocalDateTime time1 = RandomSource.dateTimeSource().randomPastTime(7);

//生成未来7天范围内的随机时间
LocalDateTime time2 = RandomSource.dateTimeSource().randomFutureTime(7);

//生成2020年2月14日当天范围内的随机时间
LocalDateTime time3 = RandomSource.dateTimeSource().randomTime(2020, 2, 14);

//生成过去100秒范围内的随机时间
LocalDateTime time4 = RandomSource.dateTimeSource().randomPastTime(LocalDateTime.now(), 100);

//生成未来100秒范围内的随机时间
LocalDateTime time5 = RandomSource.dateTimeSource().randomFutureTime(LocalDateTime.now(), 100);

随机时间戳

…

随机时区名称

//生成1个随机时区名称
String timezone = RandomSource.dateTimeSource().randomTimezoneName();

随机强密码

//生成1个随机强密码,长度为16,无特殊字符
RandomSource.personInfoSource().randomStrongPassword(16, false);

//生成1个随机强密码,长度为16,有特殊字符
RandomSource.personInfoSource().randomStrongPassword(16, true);

随机地址

//随机获取省份
RandomSource.areaSource().randomProvince();

//随机获取城市(省份+城市,以逗号为分隔符)
RandomSource.areaSource().randomCity(",");

//随机获取邮编
RandomSource.areaSource().randomZipCode();

//生成1个随机中国大陆详细地址
RandomSource.areaSource().randomAddress();

随机国家或地区

//随机获取1个编码首字母为b的国家或地区
RandomSource.areaSource().randomCountryOrRegionCode("b");

//随机获取1个国家或地区(不限首字母)
RandomSource.areaSource().randomCountryOrRegionCode();

随机经纬度

//随机生成1个纬度
double lat = RandomSource.areaSource().randomLatitude();

//随机生成1个经度
double lng = RandomSource.areaSource().randomLongitude();

随机固话

//随机固话区号(省级行政区名称不需要包含后缀)
RandomSource.areaSource().randomPhoneCode("湖南");

//随机固话号码(使用-作为分隔符,默认的分隔符是空格)
RandomSource.areaSource().randomPhoneNumber("广东", "-");

随机中国大陆车牌号

//生成1个随机中国大陆车牌号(新能源车型)
RandomSource.otherSource().randomPlateNumber(true);

//生成1个随机中国大陆车牌号(非新能源车型)
RandomSource.otherSource().randomPlateNumber();

随机网络昵称

//生成1个随机英文网络昵称,最大长度为8个字符
RandomSource.personInfoSource().randomNickName(8);

//生成1个随机汉字网络昵称,最大长度为8个汉字
RandomSource.personInfoSource().randomChineseNickName(8);

//基于随机汉字网络昵称生成1个拼音网络昵称,最大长度为4个汉字
RandomSource.personInfoSource().randomPinyinNickName(4);

随机qq信息

//生成1个随机QQ号
RandomSource.personInfoSource().randomQQAccount();

//生成1个随机非主流QQ网名
RandomSource.personInfoSource().randomQQNickName();

随机民族名称

RandomSource.otherSource().randomEthnicName();

随机教育背景信息

//随机获取学历
RandomSource.educationSource().randomDegree();

//随机获取本科高校名称
RandomSource.educationSource().randomCollege();

//随机高校专业名称
RandomSource.educationSource().randomMajorName();

//随机获取小学名称
RandomSource.educationSource().randomPrimarySchoolName();

//随机获取小学年级
RandomSource.educationSource().randomPrimarySchoolGrade();

//随机获取中学名称
RandomSource.educationSource().randomHighSchoolName();

//随机获取中学年级
RandomSource.educationSource().randomHighSchoolGrade();

//随机班级名称
RandomSource.educationSource().randomClassName();

随机公司及部门名称

//随机生成1个公司名称,地区前缀为北京
RandomSource.otherSource().randomCompanyName("北京");

//随机生成1个公司部门名称
RandomSource.otherSource().randomCompanyDepartment();

随机中文短句

//随机生成1条中文短句
RandomSource.languageSource().randomChineseSentence();

随机英文文本

//随机生成1条英文文本,包含10个单词
RandomSource.languageSource().randomEnglishText(10);

随机营销号

RandomSource.languageSource().randomNonsenseTitle("星期一", "下雨");
RandomSource.languageSource().randomNonsense("星期一", "下雨");

随机行业分类

RandomSource.otherSource().randomEconomicCategory();

说明:行业分类编码和名称来自国家统计局发布的公开数据

统一社会信用代码

RandomSource.otherSource().randomSocialCreditCode();

随机EAN

//随机ISBN,返回结果需要分隔符-,格式例如:978-7-XXXX-XXXX-X
RandomSource.otherSource().randomISBN(true);

//随机ISBN,返回结果不需要分隔符,格式例如:9787XXXXXXXXX
RandomSource.otherSource().randomISBN(false);

//随机国际商品编码,格式例如:691XXXXXXXXXX
RandomSource.otherSource().randomEAN();

说明:

  • 本程序随机生成的EAN编码长度为13位
  • 本程序随机生成的EAN编码符合标准校验规则,仅供模拟测试/仿真/项目演示等用途,并不表示现实中真实存在该编码对应的商品(如有雷同纯属巧合)

随机useragent

//随机生成1个PC User-Agent
RandomSource.internetSource().randomPCUserAgent();

//随机生成1个Android User-Agent
RandomSource.internetSource().randomAndroidUserAgent();

//随机生成1个iOS User-Agent
RandomSource.internetSource().randomIOSUserAgent();

随机网卡mac地址

//随机生成1个网卡MAC地址,使用:作为分隔符
RandomSource.internetSource().randomMacAddress(":");

随机颜色值

//随机生成1个RGB颜色值
int[] rgb = RandomSource.otherSource().randomRgbColor();

//随机生成1个16进制(HEX)颜色值
String hex = RandomSource.otherSource().randomHexColor();

股票名称和股票代码

…

开放式基金名称和基金代码

String[] fund = RandomSource.financialSource().randomFund();
String fundName = fund[0];
String fundCode = fund[1];

日k线数据

//随机生成20210201~20210228日期范围内的K线数据,起始价格为100,单日最大涨幅10%,单日最大跌幅-10%
List kList = RandomSource.financialSource().randomDailyKChartData(100, 0.1, -0.1, "20210201", "20210228");

货币

//随机获取一种货币信息
CurrencyInfo ci = RandomSource.financialSource().randomCurrencyInfo();

足球联赛球队名称

//英超
RandomSource.sportSource().randomFootballTeam(CompetitionType.PREMIER_LEAGUE);

//西甲
RandomSource.sportSource().randomFootballTeam(CompetitionType.LA_LIGA);

//德甲
RandomSource.sportSource().randomFootballTeam(CompetitionType.BUNDESLIGA);

//意甲
RandomSource.sportSource().randomFootballTeam(CompetitionType.SERIE_A);

//法甲
RandomSource.sportSource().randomFootballTeam(CompetitionType.LIGUE_1);

//荷甲
RandomSource.sportSource().randomFootballTeam(CompetitionType.EREDIVISIE);

篮球联赛球队名称

//CBA
RandomSource.sportSource().randomBasketballTeam(CompetitionType.CBA);

//NBA
RandomSource.sportSource().randomBasketballTeam(CompetitionType.NBA);

国家及地区的足球代表队

//(亚洲足联范围内)随机足球队名称
RandomSource.sportSource().randomFootballTeam(FootballConfederation.AFC);

//(欧洲足联范围内)随机足球队名称
RandomSource.sportSource().randomFootballTeam(FootballConfederation.UEFA);

//随机足球队名称(不限足球联合会)
RandomSource.sportSource().randomFootballTeam();

访问 Wikipedia网页 可以查看完整的足球联合会列表信息。

热门手机型号

RandomSource.otherSource().randomMobileModel();

数据生成工具

此工具类支持自定义生成符合业务需求的随机数据,示例如下:

…

JSON库说明

主要变化

考虑到某些项目可能使用其它JSON依赖库,从 1.0.16 版起,本程序就不再强依赖 jackson,更加灵活:

  • jackson(默认)
  • fastjson2
  • gson

依赖坐标

由于不再强依赖 jackson,因此您需要在您的项目中手动添加相关依赖。三选一:

  1. jackson
xml

    com.fasterxml.jackson.core
    jackson-databind
    2.13.4

版本号仅供参考,最新版本请查看这里

  1. fastjson
xml

    com.alibaba.fastjson2
    fastjson2
    2.0.53

版本号仅供参考,最新版本请查看这里

  1. gson
xml

    com.google.code.gson
    gson
    2.9.1

版本号仅供参考,最新版本请查看这里

拼音库说明

主要变化

考虑到某些项目可能使用 pinyin4j,从 1.0.16 版起,本程序就不再强依赖 tinypinyin,更加灵活:

  • tinypinyin(默认)
  • pinyin4j

如何设置

由于不再强依赖 tinypinyin,因此您需要在您的项目中手动添加相关依赖。二选一:

  1. tinypinyin
xml

    io.github.biezhi
    TinyPinyin
    2.0.3.RELEASE

版本号仅供参考,最新版本请查看这里

  1. pinyin4j
xml

    com.belerweb
    pinyin4j
    2.5.1

版本号仅供参考,最新版本请查看这里

常见问题

报错信息 原因及解决方法
java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException 缺少jackson依赖,手动添加即可
java.lang.NoClassDefFoundError: com/alibaba/fastjson2/TypeReference 缺少fastjson2依赖,手动添加即可
java.lang.NoClassDefFoundError: com/google/gson/reflect/TypeToken 缺少gson依赖,手动添加即可
```java.lang.NoClassDefFoundError: com/github/promeg/pi

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Javafake-datajava

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言