C# 写的一个生成随机汉语名字的小程序

时间:2022-03-05 15:04:25

最近因为要做数据库相关的测试,频繁使用到测试数据,手动添加太过于麻烦,而且复用性太差,因此干脆花了点时间写了一个生成随机姓名和相关数据的类,贴在这里,有需用的同志们可以参考一下。代码本身质量不好,也不算规范,各取所需莫要取笑-。-

  public class  GetRandomName
{
private static string firstName = @"赵,钱,孙,李,周,吴,郑,王,冯,陈,褚,卫,蒋,
沈,韩,杨,朱,秦,尤,许,何,吕,施,张,孔,曹,严,华,金,魏,陶,姜, 戚,谢,邹,喻,
柏,水,窦,章,云,苏,潘,葛,奚,范,彭,郎,鲁,韦,昌,马,苗,凤,花,方,俞,任,袁,柳,
丰,鲍,史,唐, 费,廉,岑,薛,雷,贺,倪,汤,滕,殷,罗,毕,郝,邬,安,常,乐,于,时,
傅,皮,卞,齐,康,伍,余,元,卜,顾,孟,平,黄, 和,穆,萧,尹,姚,邵,湛,汪,祁,毛,
禹,狄,米,贝,明,臧,计,伏,成,戴,谈,宋,茅,庞,熊,纪,舒,屈,项,祝,董,梁, 杜,
阮,蓝,闵,席,季,麻,强,贾,路,娄,危,江,童,颜,郭,梅,盛,林,刁,钟,徐,丘,骆,高,
夏,蔡,田,樊,胡,凌,霍, 虞,万,支,柯,昝,管,卢,莫,经,房,裘,缪,干,解,应,宗,丁,
宣,贲,邓,郁,单,杭,洪,包,诸,左,石,崔,吉,钮,龚, 程,嵇,邢,滑,裴,陆,荣,翁,荀,
羊,於,惠,甄,麴,家,封,芮,羿,储,靳,汲,邴,糜,松,井,段,富,巫,乌,焦,巴,弓, 牧,
隗,山,谷,车,侯,宓,蓬,全,郗,班,仰,秋,仲,伊,宫,宁,仇,栾,暴,甘,钭,厉,戌,祖,
武,符,刘,景,詹,束,龙, 叶,幸,司,韶,郜,黎,蓟,薄,印,宿,白,怀,蒲,邰,从,鄂,索,
咸,籍,赖,卓,蔺,屠,蒙,池,乔,阴,郁,胥,能,苍,双, 闻,莘,党,翟,谭,贡,劳,逢,姬,
申,扶,堵,冉,宰,郦,雍,郤,璩,桑,桂,濮,牛,寿,通,边,扈,燕,冀,郏,浦,尚,农, 温,
别,庄,晏,柴,瞿,阎,充,慕,连,茹,习,宦,艾,鱼,容,向,古,易,慎,戈,廖,庾,终,暨,
居,衡,步,都,耿,满,弘, 匡,国,文,寇,广,禄,阙,东,欧,殳,沃,利,蔚,越,菱,隆,师,
巩,厍,聂,晃,勾,敖,融,冷,訾,辛,阚,那,简,饶,空, 曾,毋,沙,乜,养,鞠,须,丰,巢,
关,蒯,相,查,后,荆,红,游,竺,权,逯,盖,益,桓,公, 万俟,司马,上官,欧阳,夏侯,
诸葛,闻人,东方,赫连,皇甫,尉迟,公羊,澹台,公冶,宗政,濮阳,淳于,单于,太叔,
申屠,公孙,仲孙,轩辕,令狐,钟离,宇文,长孙,慕容,司徒,司空"; private static string lastName = @"努,迪,立,林,维,吐,丽,新,涛,米,亚,克,湘,明,
白,玉,代,孜,霖,霞,加,永,卿,约,小,刚,光,峰,春,基,木,国,娜,晓,兰,阿,伟,英,元,
音,拉,亮,玲,木,兴,成,尔,远,东,华,旭,迪,吉,高,翠,莉,云,华,军,荣,柱,科,生,昊,
耀,汤,胜,坚,仁,学,荣,延,成,庆,音,初,杰,宪,雄,久,培,祥,胜,梅,顺,涛,西,库,康,
温,校,信,志,图,艾,赛,潘,多,振,伟,继,福,柯,雷,田,也,勇,乾,其,买,姚,杜,关,陈,
静,宁,春,马,德,水,梦,晶,精,瑶,朗,语,日,月,星,河,飘,渺,星,空,如,萍,棕,影,南,北";
private static string nationName = @"汉族,壮族,满族,回族,苗族,*,土家族,
彝族,蒙古族,藏族,布依族,侗族,瑶族,朝鲜族,白族,哈尼族,哈萨克族,黎族,傣族,畲族,
傈僳族,仡佬族,东乡族,高山族,拉祜族,水族,佤族,纳西族,羌族,土族,仫佬族,锡伯族,
柯尔克孜族,达斡尔族,景颇族,毛南族,撒拉族,布朗族,塔吉克族,阿昌族,普米族,鄂温克族
,怒族,京族,基诺族,德昂族,保安族,俄罗斯族,裕固族,乌兹别克族,门巴族,鄂伦春族,
独龙族,塔塔尔族,赫哲族,珞巴族";
static Random rnd = new Random((int)DateTime.Now.ToFileTimeUtc()); public static string getRandomName()
{
int namelength = ;
namelength = rnd.Next(, );
firstName = firstName.Replace("\n", "");
firstName = firstName.Replace("\r", "");
firstName = firstName.Replace(" ", "");
lastName = lastName.Replace("\r", "");
lastName = lastName.Replace("\n", "");
lastName = lastName.Replace(" ", "");
string name = "";
string[] FirstName = firstName.Split(',');
string[] LastName = lastName.Split(',');
if (namelength == )
{
name = FirstName[rnd.Next(, FirstName.Length)] + LastName[rnd.Next(, LastName.Length)];
}
else if (namelength == )
{
name = FirstName[rnd.Next(, FirstName.Length)] + LastName[rnd.Next(, LastName.Length)] + LastName[rnd.Next(, LastName.Length)];
} return name;
}
public static string GetRandomNumber(int startnumber,int endnumber )
{
string strNumber = rnd.Next(startnumber, endnumber).ToString();
return strNumber;
}
public static string GetRandomNation()
{
nationName = nationName.Replace("\n", "");
nationName = nationName.Replace("\r", "");
nationName = nationName.Replace(" ", "");
string[] nationname = nationName.Split(',');
string nation = nationname[rnd.Next(, )];
return nation;
}
}

其中姓氏取得所有百家姓的姓,名字只是从下面一百多个字中随机取中间的一两个字作为名字,程序可以生成2-4个字的名字,当然也是随机的,后面还多了个随机民族,主要是我自己用。就当奉送啦!
中间的有些代码是做格式控制用的,兄台们看看就好。有问题留言或者直接联系我。