需求

因为某些特殊原因需要生成一些订单数据。所以需要生成随机的姓名。

实现思路

将姓氏、男生名常见字、女生名常见字分别保存在字典中,key为从1开始的连续的整数,value为姓或单字。将字典中的数据缓存到一个HashMap中,生成随机整数从中取数据,并组合起来。

模块组织

字典:SurnameDictionaries.txt、BoynameDictionaries.txt、GirlnameDictionaries.txt,用于存储姓氏与名字。

文件模块:FileUtils,用于读取字典,并生成HashMap。

主要模块:NameUtils,用于随机读取姓氏、男生名、女生名,并将读取到的姓名组合起来。

实现结果

以下是实现后的一些示例:

女生名

男生名

感觉有点中二的名字。。。

代码

FileUtils

package com.zixuan.utils;

import java.io.File;

import java.io.FileInputStream;

import java.net.URI;

import java.util.HashMap;

import java.util.Scanner;

public class FileUtils {

//读取字典

public HashMap getDict(String dictName){

HashMap map = new HashMap();

FileInputStream fis = null;

try {

URI uri = this.getClass().getClassLoader().getResource(dictName).toURI();

File file = new File(uri);

fis = new FileInputStream(file);

Scanner scanner = new Scanner(fis);

while (scanner.hasNextLine()) {

String[] strings = scanner.nextLine().split("=");

map.put(Integer.valueOf(strings[0]),strings[1]);

}

scanner.close();

fis.close();

return map;

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

}

NameUtils

package com.zixuan.baijiaxing;

import com.zixuan.utils.DictName;

import com.zixuan.utils.FileUtils;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import java.net.URI;

import java.net.URISyntaxException;

import java.util.*;

public class NameUtils {

FileUtils fileUtils = new FileUtils();

HashMap surnameDict = fileUtils.getDict(DictName.SurnameDict);

HashMap boynameDict = fileUtils.getDict(DictName.BoynameDict);

HashMap grilnameDict = fileUtils.getDict(DictName.GirlnameDict);

Random rand = new Random();

//获取随机姓氏

public String getSurname(){

return surnameDict.get(Integer.valueOf(rand.nextInt(100)+1));

}

//获取随机名字

public String getName(String sex){

//生成名字长度1-2

int nameLength = rand.nextInt(2) + 1;

String name = "";

//根据性别从不同的HashMap中随机读取名字

if (sex.toLowerCase()=="girl"){

for (int i = 0; i < nameLength; i++) {

name = name + grilnameDict.get(Integer.valueOf(rand.nextInt(grilnameDict.size())+1));

}

}else if (sex.toLowerCase()=="boy"){

for (int i = 0; i < nameLength; i++) {

name = name + boynameDict.get(Integer.valueOf(rand.nextInt(boynameDict.size())+1));

}

}

return name;

}

}

将字典文件名封装进一个类中,避免写错文件名:

package com.zixuan.utils;

public class DictName {

static public final String SurnameDict = "SurnameDictionaries.txt";

static public final String BoynameDict = "BoynameDictionaries.txt";

static public final String GirlnameDict = "GirlnameDictionaries.txt";

}

测试代码

package com.zixuan.kafka.controler;

import com.zixuan.baijiaxing.NameUtils;

import java.util.Random;

public class Test {

public static void main(String[] args) {

NameUtils surnameUtils = new NameUtils();

Random random = new Random();

String name = null;

for (int i = 0; i < 200; i++) {

name = surnameUtils.getSurname()+surnameUtils.getName("gril");

System.out.println(name);

}

}

}

字典

SurnameDictionaries.txt

1=赵

2=钱

3=孙

4=李

5=周

6=吴

7=郑

8=王

9=冯

10=陈

11=诸

12=卫

13=蒋

14=沈

15=韩

16=杨

17=朱

18=秦

19=尤

20=许

21=何

22=吕

23=施

24=张

25=孔

26=曹

27=严

28=华

29=金

30=魏

31=陶

32=姜

33=戚

34=谢

35=邹

36=喻

37=柏

38=水

39=窦

40=章

41=云

42=苏

43=潘

44=葛

45=奚

46=范

47=彭

48=郎

49=鲁

50=韦

51=昌

52=马

53=苗

54=凤

55=花

56=方

57=俞

58=任

59=袁

60=柳

61=酆

62=鲍

63=史

64=唐

65=费

66=廉

67=岑

68=薛

69=雷

70=贺

71=倪

72=汤

73=滕

74=殷

75=罗

76=毕

77=郝

78=邬

79=安

80=常

81=乐

82=于

83=时

84=傅

85=皮

86=卡

87=齐

88=康

89=伍

90=余

91=元

92=卜

93=顾

94=孟

95=平

96=黄

97=和

98=穆

99=萧

100=尹

BoynameDictionaries.txt

1=桦

2=耀

3=骏

4=崇

5=广

6=驰

7=泉

8=谚

9=凌

10=生

11=诤

12=康

13=海

14=殿

15=之

16=山

17=功

18=河

19=巩

20=襦

21=全

22=升

23=正

24=铠

25=鹰

26=晷

27=胜

28=科

29=诚

30=朕

31=锦

32=舱

33=达

34=璟

35=俯

36=瑞

37=冠

38=容

39=固

40=承

41=儒

42=彤

43=佚

44=翰

45=立

46=俊

47=豪

48=瀚

49=融

50=增

51=纲

52=毅

53=澔

54=意

55=铖

56=迅

57=章

58=彰

59=谦

60=乔

61=振

62=华

63=禅

64=恬

65=澎

66=部

67=瑾

68=钦

69=展

70=采

71=景

72=励

73=彦

74=鹏

75=隆

76=福

77=艺

78=力

79=喆

80=为

81=宜

82=频

83=菁

84=基

85=亿

86=佳

87=茵

88=苓

89=韦

90=澉

91=涛

92=驹

93=震

94=凤

95=万

96=大

97=颔

98=辅

99=睿

100=谱

101=议

102=尧

103=畅

104=襦

105=敬

106=善

107=进

108=梁

109=以

110=哲

111=候

112=真

113=超

114=晋

115=浦

116=来

117=利

118=钢

119=英

120=珑

121=阔

122=娟

123=刚

124=高

125=聚

126=理

127=斌

128=颜

129=弛

130=庆

131=军

132=垒

133=采

134=亦

135=若

136=朗

137=锐

138=森

139=奕

140=艺

141=照

142=淇

143=帝

144=砂

145=兴

146=基

147=歌

148=焘

149=卿

150=亨

151=珺

152=礼

153=吉

154=雄

155=光

156=圣

157=政

158=盈

159=代

160=鑫

161=镇

162=竣

163=迎

164=贵

165=弓

166=骅

167=亮

168=逸

169=澉

170=钧

171=聪

172=筠

173=谊

174=丞

175=颔

176=飒

177=涓

178=波

179=溢

180=榕

181=富

182=炎

183=易

184=韩

185=昭

186=益

187=沧

188=星

189=茹

190=绮

191=劭

192=博

193=臻

194=罡

195=钊

196=义

197=琛

198=滢

199=社

200=征

201=凯

202=寒

203=晟

GirlnameDictionaries.txt

1=梓

2=爱

3=梦

4=柔

5=南

6=漪

7=琦

8=晨

9=姿

10=琪

11=蓉

12=寻

13=漫

14=琪

15=丽

16=惠

17=忆

18=安

19=慕

20=澜

21=琬

22=丹

23=娇

24=柳

25=蓝

26=蕊

27=灵

28=琰

29=佩

30=媛

31=桃

32=春

33=雪

34=玥

35=琳

36=惠

37=妩

38=慕

39=语

40=海

41=玫

42=琴

43=月

44=萱

45=兰

46=彤

47=沛

48=环

49=琼

50=玉

51=娈

52=岚

53=晴

54=宛

55=玲

56=瑗

57=婉

58=瑷

59=香

60=语

61=晓

62=珂

63=瑛

64=晓

65=悠

66=沛

67=菱

68=菡

69=珊

70=瑜

71=倩

72=源

73=菡

74=霜

75=巧

76=珍

77=瑶

78=瑞

79=赫

80=珊

81=紫

82=蕙

83=珠

84=瑾

85=静

86=晗

87=曼

88=莲

89=卉

90=婉

91=璇

92=颖

93=贻

94=菱

95=翠

96=靖

97=婕

98=璐

99=韶

100=楚

101=寒

102=烟

103=枫

104=清

105=璟

本文地址:https://blog.csdn.net/x950913/article/details/107365857

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

java 判断是否为男女_java:生成中文姓名(区分男女)相关推荐

  1. java判断简体和繁体字_java获取系统语言(区分简体中文和繁体中文) | 学步园...

    之前做android应用时遇到过一个问题,就是根据语言的不同而显示不同的内容 网上很多代码都是错误的,起码无法区分简体和繁体,这里给出一种方法 不涉及android任何知识,所以就归类到java这边了 ...

  2. Java随机生成中文姓名+手机+邮编+地址

    import java.util.HashMap; import java.util.Map; /** * 随机生成中文姓名,性别,Email,手机号,住址 * @author X-rapido */ ...

  3. Java开源 之随机生成中文姓名,手机号,邮编,住址

    import java.util.HashMap; import java.util.Map;/*** 随机生成中文姓名,性别,Email,手机号,住址*/ public class RandomVa ...

  4. java判断是否文件夹_java中怎么判断是否文件夹

    java判断是否是文件夹的方法:package com.tij.io.file; import java.io.File; /** * 检查File对象是文件还是目录 * @author guoyou ...

  5. Java判断一个字符串中是否包含中文字符工具类

    Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比 ...

  6. java随机姓名_Java生成随机姓名、性别和年龄的实现示例

    一.定义实体类Person,封装生成的数据 package net.dc.test; public class Person { private String name; private String ...

  7. java判断是否是路径_java判断是否是目录

    java判断是否是目录:/** * 创建目录 * * @param path */ public static void CreatFileDir(String path) { try { File ...

  8. java 判断是不是微信打开_Java判断浏览器是微信还是支付宝

    下面一段代码给大家介绍java判断浏览器是微信还是支付宝,具体代码如下所示: @RequestMapping("getBrowser.do") public String getB ...

  9. java 判断是否是昨天_java判断日期是否是今天

    java判断日期是不是当天:public static boolean isToday(String str, String formatStr) throws Exception{ SimpleDa ...

  10. java 姓名_Java生成随机姓名、性别和年龄的实现示例

    一.定义实体类Person,封装生成的数据 package net.dc.test; public class Person { private String name; private String ...

最新文章

  1. 剑指0ffer04.二维数组中的查找
  2. error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
  3. 经验总结03-dwr
  4. JAVA进阶级开发之(Array工具类)
  5. 谈谈Java虚拟机——Class文件结构
  6. java单个数组求积_[剑指offer][Java]构建乘积数组
  7. flowable实现多实例节点的自由跳转
  8. Arduino笔记五三轴陀螺仪L3G4200D
  9. 分享一组我在ins上收集的程序员最爱桌面壁纸
  10. 全球餐厅库存管理软件行业调研及趋势分析报告
  11. 安卓坐标系转换之二:旋转角(欧拉角)
  12. linux+h3c模拟器下载,h3c模拟器下载
  13. 2019.6.21 NOIP2018提高组模拟题(二)
  14. 2014,念念不忘 必有回响
  15. 程序设计基础课程设计——学生成绩管理程序
  16. mac上使用nginx代理
  17. 2D中小游戏开发C++游戏教程
  18. 如何解锁元宇宙?应用场景决定商业化变现
  19. 文献翻译利器——自定义PDF阅读器+Saladict+Quicker
  20. 如何取消IE“已限制此网页运行可以访问计算机的脚本或ActiveX控件”

热门文章

  1. linux运维开发之路(一)— 基础知识篇
  2. 【计算机组成原理】寻址方式
  3. Android 第三方应用接入微信平台(2)
  4. SVN 已提交版本回退
  5. metawrap quant_bins 的bin_abundance_table.tab结果理解
  6. mysql查看数据库事务隔离级别_MySQL查看和修改事务隔离级别的实例讲解
  7. 数据结构第四篇——(一般)线性表(基于C语言)
  8. Java中Scanner 的用法/ Scanner怎么使用
  9. CloudComparePCL 点云点匹配(基于点到面的距离)
  10. Tuning (调试)