生成随机中文姓名的辅助类(ChineseName.cs)

数据测试中会用到大量姓名,为了简化操作,写了个姓名自动生成类,这个类仅仅用于测试数据,因为生成的姓名毫无意义,甚至可笑的。

  • 首先,采用String.Splite(‘,’);函数将百家姓分开,随机生成姓名。
  • 然后,采用下面的函数随机生成1~2个简体汉字(这个函数是从园子里找到的,详见生成简体汉字C#)。
private static string FisrtName() { string str = ""; int count = rnd.Next(1, 3); for (int i = 0; i < count; i++) { while (true) { int ACode = 1601 + rnd.Next(999); string strtemp = Encoding.Default.GetString(new byte[] { (byte)(ACode / 100 + 160), (byte)(ACode % 100 + 160) }); if (strtemp != "?") { str += strtemp; break; } } } return str; }
  • 最后一步,上完整代码:

 

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyTool.DataConvert { /// <summary> /// 随机生成姓名 /// </summary> public class ChineseName { private static string surname = @" 赵,钱,孙,李,周,吴,郑,王,冯,陈,褚,卫,蒋,沈,韩,杨,朱,秦,尤,许,何,吕,施,张,孔,曹,严,华,金,魏,陶,姜, 戚,谢,邹,喻,柏,水,窦,章,云,苏,潘,葛,奚,范,彭,郎,鲁,韦,昌,马,苗,凤,花,方,俞,任,袁,柳,丰,鲍,史,唐, 费,廉,岑,薛,雷,贺,倪,汤,滕,殷,罗,毕,郝,邬,安,常,乐,于,时,傅,皮,卞,齐,康,伍,余,元,卜,顾,孟,平,黄, 和,穆,萧,尹,姚,邵,湛,汪,祁,毛,禹,狄,米,贝,明,臧,计,伏,成,戴,谈,宋,茅,庞,熊,纪,舒,屈,项,祝,董,梁, 杜,阮,蓝,闵,席,季,麻,强,贾,路,娄,危,江,童,颜,郭,梅,盛,林,刁,钟,徐,丘,骆,高,夏,蔡,田,樊,胡,凌,霍, 虞,万,支,柯,昝,管,卢,莫,经,房,裘,缪,干,解,应,宗,丁,宣,贲,邓,郁,单,杭,洪,包,诸,左,石,崔,吉,钮,龚, 程,嵇,邢,滑,裴,陆,荣,翁,荀,羊,於,惠,甄,麴,家,封,芮,羿,储,靳,汲,邴,糜,松,井,段,富,巫,乌,焦,巴,弓, 牧,隗,山,谷,车,侯,宓,蓬,全,郗,班,仰,秋,仲,伊,宫,宁,仇,栾,暴,甘,钭,厉,戌,祖,武,符,刘,景,詹,束,龙, 叶,幸,司,韶,郜,黎,蓟,薄,印,宿,白,怀,蒲,邰,从,鄂,索,咸,籍,赖,卓,蔺,屠,蒙,池,乔,阴,郁,胥,能,苍,双, 闻,莘,党,翟,谭,贡,劳,逢,姬,申,扶,堵,冉,宰,郦,雍,郤,璩,桑,桂,濮,牛,寿,通,边,扈,燕,冀,郏,浦,尚,农, 温,别,庄,晏,柴,瞿,阎,充,慕,连,茹,习,宦,艾,鱼,容,向,古,易,慎,戈,廖,庾,终,暨,居,衡,步,都,耿,满,弘, 匡,国,文,寇,广,禄,阙,东,欧,殳,沃,利,蔚,越,菱,隆,师,巩,厍,聂,晃,勾,敖,融,冷,訾,辛,阚,那,简,饶,空, 曾,毋,沙,乜,养,鞠,须,丰,巢,关,蒯,相,查,后,荆,红,游,竺,权,逯,盖,益,桓,公, 万俟,司马,上官,欧阳,夏侯,诸葛,闻人,东方,赫连,皇甫,尉迟,公羊,澹台,公冶,宗政,濮阳,淳于,单于,太叔, 申屠,公孙,仲孙,轩辕,令狐,钟离,宇文,长孙,慕容,司徒,司空"; static Random rnd = new Random((int)DateTime.Now.ToFileTimeUtc()); private static string FisrtName() { string str = ""; int count = rnd.Next(1, 3); for (int i = 0; i < count; i++) { while (true) { int ACode = 1601 + rnd.Next(999); string strtemp = Encoding.Default.GetString(new byte[] { (byte)(ACode / 100 + 160), (byte)(ACode % 100 + 160) }); if (strtemp != "?") { str += strtemp; break; } } } return str; } /// <summary> /// 获取随机姓名 /// </summary> /// <returns></returns> public static string getRandomName() { surname = surname.Replace("\r\n", ""); string name = ""; string[] LastName = surname.Split(','); name = LastName[rnd.Next(0, LastName.Length)]; name += FisrtName(); return name; } } }

 

理论上说,代码最好能让用户自己预定义一部分“名”,这样生成的名字才能更符合客户自己的需要,这个扩展很简单,就不在添加了。懒懒懒~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值