admin 管理员组文章数量: 1086019
theboboy原创 随机生成器 生成伪数据 用来做测试 C#.Net版本
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace theboboy_util.Util
{/// <summary>/// 随机生成器/// Random Value Generator/// </summary>/// <see cref="Author">theboboy</see>/// <see cref="Version">v1.0</see>class RandomValueGenerator{private static string CN_SEX_MALE = "男";private static string CN_SEX_FEMALE = "女";private static string EN_SEX_MALE = "M";private static string EN_SEX_FEMALE = "F";//中文姓private static char[] cnFirstNames;private static int cfnLength;//中文男名private static char[] cnMaleLastNames;private static int cmlnLength;//中文女名private static char[] cnFemaleLastNames;private static int cflnLength;//English Male Firstnameprivate static string[] enMaleFirstNames;private static int emfnLength;//English Female Firstnameprivate static string[] enFemaleFirstNames;private static int effnLength;//English Lastnameprivate static string[] enLastNames;private static int elnLength;private static Random ran;private static StringBuilder builder;//初始化//Initializestatic RandomValueGenerator(){#region initial firstname and lastnamestring temp = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵堪汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯咎管卢莫经房裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊於惠甄魏家封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭厉戎祖武符刘景詹束龙叶幸司韶郜黎蓟薄印宿白怀蒲台从鄂索咸籍赖卓蔺屠蒙池乔阴郁胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍却璩桑桂濮牛寿通边扈燕冀郏浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼容向古易慎戈廖庚终暨居衡步都耿满弘匡国文寇广禄阙东殴殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查后荆红游竺权逯盖後桓公";cnFirstNames = temp.ToCharArray();cfnLength = cnFirstNames.Length;temp = "远航旭尧英杰俊楠鸿涛伟祺荣轩浩宇晋鹏伯毅逐天雨泽楷瑞建辉致远俊驰烨磊国豪文博黎昕逐日昊祯龙恩玄华元贞巴莫子烨圣卿尚儒施祁善琦正豪峻熙嘉懿煜城鸿煊";cnMaleLastNames = temp.ToCharArray();cmlnLength = cnMaleLastNames.Length;temp = "钰彤璟雯天瑜婧琪彤萱玥婷媛馨梦涵碧萱慧妍婧琪璟雯雪怡彦歆芮涵笑薇鑫蕾昭雪玉珍美琳欢馨优璇淑颖娅楠惠茜漫妮香茹月婵嫦曦梦洁凌薇依娜若雨雅芙秀影海琼欣然天瑜可岚滢心姝瑗凌菲妍洋佳琦思睿欣溶露雪怡悦";cnFemaleLastNames = temp.ToCharArray();cflnLength = cnFemaleLastNames.Length;enLastNames = new string[] { "Smith", "Johnson", "Williams", "Jones", "Brown", "Davis", "Miller", "Wilson", "Moore", "Taylor", "Anderson", "Thomas", "Jackson", "White", "Harris", "Martin","Thompson", "Garcia", "Martinez", "Robinson", "Clark", "Rodriguez", "Lewis", "Lee", "Walker", "Hall", "Allen", "Young", "Hernandez", "King", "Wright", "Lopez", "Hill", "Scott","Green", "Adams", "Baker", "Gonzalez", "Nelson", "Carter", "Mitchell", "Perez", "Roberts", "Turner", "Phillips", "Campbell", "Parker", "Evans", "Edwards", "Collins", "Stewart","Sanchez", "Morris", "Rogers", "Reed", "Cook", "Morgan", "Bell", "Murphy", "Bailey", "Rivera", "Cooper", "Richardson", "Cox", "Howard", "Ward", "Torres", "Peterson", "Gray","Ramirez", "James", "Watson", "Brooks", "Kelly", "Sanders", "Price", "Bennett", "Wood", "Barnes", "Ross", "Henderson", "Coleman", "Jenkins", "Perry", "Powell", "Long", "Patterson","Hughes", "Flores", "Washington", "Butler", "Simmons", "Foster", "Gonzales", "Bryant", "Alexander", "Russell", "Griffin", "Diaz", "Hayes" };elnLength = enLastNames.Length;enMaleFirstNames = new string[] { "Aaron", "Abbott", "Abel", "Abner", "Abraham", "Adair", "Adam", "Addison", "Adolph", "Adonis", "Adrian", "Ahern", "Alan", "Albert", "Aldrich", "Alexander","Alfred", "Alger", "Algernon", "Allen", "Alston", "Alva", "Alvin", "Alvis", "Amos", "Andre", "Andrew", "Andy", "Angelo", "Augus", "Ansel", "Antony", "Antoine", "Antonio", "Archer","Archibald", "Aries", "Arlen", "Armand", "Armstrong", "Arno", "Arnold", "Arthur", "Arvin", "Asa", "Ashbur", "Atwood", "Aubrey", "August", "Augustine", "Baird", "Baldwin", "Bancroft","Bard", "Barlow", "Baron", "Barret", "Barry", "Bartholomew", "Bart", "Barton", "Basil", "Beau", "Beck", "Ben", "Benedict", "Benjamin", "Benson", "Berg", "Berger", "Bernie", "Bert","Berton", "Bevis", "Bill", "Bing", "Bishop", "Blair", "Blake", "Blithe", "Bob", "Booth", "Borg", "Boris", "Bowen", "Boyce", "Boyd", "Brady", "Brian", "Broderick", "Caesar", "Calvin","Carey", "Carl", "Carr", "Carter", "Cash", "Cecil", "Cedric", "Chad", "Channing", "Chasel", "Christ", "Christian", "Christopher", "Clare", "Clarence", "Clark", "Claude", "Cleveland","Cliff", "Clifford", "Clyde", "Colby", "Colin", "Conrad", "Corey", "Cornelius", "Craig", "Cyril", "Dana", "Daniel", "Darcy", "Darren", "Dats", "Dave", "David", "Dean", "Dennis","Devin", "Dick", "Don", "Donald", "Douglas", "Drew", "Duke", "Duncan", "Dunn", "Dwight", "Dylan", "Earl", "Ed", "Eden", "Edgar", "Edmund", "Edison", "Edward", "Edwiin", "Egbert","Eli", "Elijah", "Elliot", "Ellis", "Elmer", "Elroy", "Elton", "Elvis", "Emmanuel", "Enoch", "Eric", "Fabian", "Felix", "Ferdinand", "Fitch", "Fitzgerald", "Ford", "Francis", "Frank","Franklin", "Frederic", "Gabriel", "Gale", "Gary", "Gavin", "Gene", "Geoffrey", "Geoff", "George", "Gerald", "Gilbert", "Giles", "Glenn", "Goddard", "Godfery", "Gordon", "Greg","Gregary", "Griffith", "Grover", "Gustave", "Hale", "Haley", "Hamiltion", "Hardy", "Harlan", "Harley", "Harold", "Harriet", "Harry", "Harvey", "Hayden", "Heather", "Henry", "Herbert","Herman", "Hilary", "Hiram", "Hobart", "Hugo", "Hyman", "Jack", "Jacob", "James", "Jared", "Jason", "Jay", "Jeff", "Jeffrey", "Jeremy", "Jerome", "Jerry", "Jesse", "Jim", "John","Jonas", "Jonathan", "Joyce", "Julian", "Julius", "Justin", "Kelly", "Ken", "Kent", "Kerr", "Kerwin", "Kevin", "Kim", "King", "Kirk", "Kyle", "Lambert", "Lance", "Larry", "Lawrence","Leif", "Len", "Lennon", "Leo", "Leonard", "Leopold", "Les", "Lester", "Levi", "Lewis", "Lionel", "Louis", "Lucien", "Lyle", "Lyndon", "Lynn", "Magee", "Malcolm", "Mandel", "Marcus","Marico", "Mark", "Marlon", "Marsh", "Marshall", "Martin", "Marvin", "Matt", "Matthew", "Maurice", "Max", "Maximilian", "Maxwell", "Meredith", "Merle", "Merlin", "Michael", "Michell","Mick", "Mike", "Miles", "Milo", "Morgan", "Morton", "Murray", "Myron", "Nat", "Nathan", "Nathaniel", "Neil", "Nelson", "Nicholas", "Nick", "Noah", "Norman", "Norton", "Ogden","Oliver", "Omar", "Orville", "Osborn", "Oscar", "Oswald", "Otis", "Otto", "Owen", "Page", "Parker", "Paul", "Perry", "Pete", "Peter", "Philip", "Porter", "Prescott", "Primo","Rachel", "Ralap", "Randolph", "Raymond", "Regan", "Reginald", "Reuben", "Rex", "Richard", "Robert", "Robin", "Rock", "Rod", "Rodney", "Ronald", "Rory", "Roy", "Rudolf", "Rupert","Ryan", "Sam", "Sampson", "Samuel", "Sandy", "Saxon", "Scott", "Sean", "Sebastian", "Sid", "Sidney", "Silvester", "Simon", "Solomon", "Spencer", "Stan", "Stanford", "Stanley","Steven", "Stev", "Steward", "Tab", "Taylor", "Ted", "Ternence", "Theobald", "Theodore", "Thomas", "Tiffany", "Tim", "Timothy", "Tobias", "Toby", "Todd", "Tom", "Tony", "Tracy","Troy", "Truman", "Tyler", "Tyrone", "Wade", "Walker", "Walter", "Ward", "Warner", "Wayne", "Webb", "Webster", "Wendell", "Werner", "Wilbur", "Will", "William", "Willie", "Winfred","Winston", "Woodrow", "Wordsworth", "Wright", "Wythe", "Valentine", "Verne", "Victor", "Vivian", "Xavier", "Yale", "York", "Zachary", "Zebulon", "Ziv" };emfnLength = enMaleFirstNames.Length;enFemaleFirstNames = new string[] { "Abigail", "Ada", "Adela", "Adelaide", "Afra", "Agatha", "Agnes", "Alberta", "Alexia", "Alice", "Alma", "Althea", "Alva", "Amanda", "Amelia", "Amy","Anastasia", "Andrea", "Angela", "Ann", "Anna", "Annabelle", "Antonia", "April", "Arlene", "Astrid", "Atalanta", "Athena", "Audrey", "Aurora", "Barbara", "Beatrice", "Belinda","Bella", "Bernice", "Bertha", "Beryl", "Bess", "Betsy", "Betty", "Beulah", "Beverly", "Blanche", "Bblythe", "Bonnie", "Breenda", "Bridget ", "Brook", "Bruf", "Bura", "Camille","Candance", "Candice", "Cara", "Carol", "Caroline", "Catherine ", "Cathy", "Cecilia", "Celeste", "Charlotte", "Cherry", "Cheryl", "Chloe", "Christine", "Claire", "Cora ", "Cornelia","Crystal", "Cynthia", "Daisy", "Dale", "Dana", "Daphne", "Darlene", "Dawn", "Debby ", "Deborah", "Deirdre", "Delia", "Denise", "Diana", "Dinah", "Dolores", "Dominic", "Donna","Dora ", "Doreen", "Doris", "Dorothy", "Eartha", "Eden", "Edith", "Edith", "Eileen", "Elaine", "Eleanore ", "Elizabeth", "Ella", "Ellen", "Elma", "Elsa", "Elsie", "Elva", "Elvira","Emma", "Erin", "Eudora", "Eve", "Evelyn", "Gabrielle", "Gail", "Gemma", "Genevieve", "Geraldine", "Gill", "Giselle", "Grace", "Griselda", "Gwendolyn", "Hannah", "Hazel", "Heather","Hedda", "Helen", "Heloise", "Hermosa", "Hilda", "Hilary", "Honey", "Mabel", "Madeline", "Madge", "Maggie", "Mamie", "Mandy", "Marcia", "Margaret", "Marguerite", "Maria", "Marian","Marina", "Marjorie", "Martha", "Martina", "Mary", "Maud", "Maureen", "Mavis", "Maxine", "Mag", "Megan", "Melissa", "Merry", "Michaelia", "Miranda", "Molly", "Monica", "Murray","Myrna", "Nancy", "Naomi", "Natalie", "Natividad", "Nelly", "Nicola", "Nicole", "Nina", "Nora", "Nydia", "Pamela", "Pandora", "Patricia", "Pearl", "Penny", "Phoebe", "Phoenix","Polly", "Poppy", "Prima", "Rachel", "Rae", "Rebecca", "Regina", "Renata", "Rita", "Roberta", "Rose", "Roxanne", "Ruby", "Sabina", "Sally", "Sabrina", "Salome", "Samantha", "Sandra","Sandy", "Sara", "Sarah", "Selena", "Sharon", "Sheila", "Sherry", "Sibyl", "Simona", "Spring", "Stacey", "Susan", "Susanna", "Sylvia", "Tabitha", "Tammy", "Teresa", "Tess", "Thera","Theresa", "Tiffany", "Tina", "Tobey", "Trista", "Valentina", "Valerie", "Vanessa", "Venus", "Vera", "Verna", "Victoria", "Viola", "Virginia", "Vivien", "Wendy", "Winni", "Xanthe","Yvette", "Yvonne", "Zara", "Zenobia", "Zoe", "Zona", "Zora" };effnLength = enFemaleFirstNames.Length; #endregionran = new Random();builder = new StringBuilder();}private RandomValueGenerator() {}/// <summary>/// 生成中文的性别/// </summary>/// <returns>中文性别中的一个</returns>public static string GenerateRandomChineseSex() {return (ran.Next() % 2 == 0) ? CN_SEX_MALE : CN_SEX_FEMALE;}/// <summary>/// Generate English Sex/// </summary>/// <returns>One of English Sex</returns>public static string GenerateRandomEnglishSex() {return (ran.Next() % 2 == 0) ? EN_SEX_MALE : EN_SEX_FEMALE;}/// <summary>/// 生成姓名字数/// </summary>/// <returns>2或3</returns>public static int GenerateRandomWordsCount() {return ran.Next(2) + 2;}/// <summary>/// 生成中文名/// </summary>/// <param name="sex">性别</param>/// <param name="count">字数</param>/// <returns>中文名</returns>public static string GenerateRandomChineseName(string sex, int count) {if(!CN_SEX_MALE.Equals(sex) &&!CN_SEX_FEMALE.Equals(sex)) {throw new Exception("性别非法");}char[] lastNames = (CN_SEX_MALE.Equals(sex)) ? cnMaleLastNames : cnFemaleLastNames;int lnLength = (CN_SEX_MALE.Equals(sex)) ? cmlnLength : cflnLength;builder.Clear();//姓builder.Append(cnFirstNames[ran.Next(cfnLength)]);//名for (int i = 0; i < count - 1; i++) {builder.Append(lastNames[ran.Next(lnLength)]);}return builder.ToString();}/// <summary>/// Generate English Name(2 worlds)/// </summary>/// <param name="sex">Sex</param>/// <returns>An English Name</returns>public static string GenerateRandomEnglishName(string sex) {if(!EN_SEX_MALE.Equals(sex) &&!EN_SEX_FEMALE.Equals(sex)) {throw new Exception("Illegal Sex");}String[] firstNames = (EN_SEX_MALE.Equals(sex)) ? enMaleFirstNames : enFemaleFirstNames;int fnLength = (EN_SEX_MALE.Equals(sex)) ? emfnLength : effnLength;builder.Clear();//firstnamebuilder.Append(firstNames[ran.Next(fnLength)]);builder.Append(' ');//lastnamebuilder.Append(enLastNames[ran.Next(elnLength)]);return builder.ToString();}/// <summary>/// 生成随机年龄/// Generate Random Age/// </summary>/// <param name="minAge">最小值, Min Age</param>/// <param name="maxAge">最大值, Max Age</param>/// <returns>Age Between minAge And maxAge</returns>public static int GenerateRandomAge(int minAge, int maxAge) {if (minAge < 1 || minAge >= maxAge || maxAge > 99) {throw new Exception("范围非法, Illegal Range");}return ran.Next(maxAge - minAge) + minAge;}/// <summary>/// 生成随机生日/// Generate Random Birthday/// </summary>/// <param name="age">年龄, Age</param>/// <returns>随机生日, A Birthday</returns>public static DateTime GenerateRandomBirthday(int age) {if (age < 1 || age > 99) {throw new Exception("年龄非法, Illegal Age");}//年, Yearint year = DateTime.Now.Year - age;//月, Monthint month = ran.Next(12) + 1;//日, Dayint day = 1;switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = ran.Next(31) + 1;break;case 4:case 6:case 9:case 11:day = ran.Next(30) + 1;break;case 2:day = ran.Next(27) + 1;break;}return new DateTime(year, month, day);}/// <summary>/// 生成身份证号/// </summary>/// <param name="birthday">生日</param>/// <returns>随机身份证号</returns>public static string GenerateIdCardNumber(DateTime birthday) {if(birthday == null) {throw new Exception("生日非法!");}builder.Clear();//6位地区 以鞍山为例 需要改成目标城市 后期会考虑根据参数生成builder.Append("21030");builder.Append(ran.Next(4) + 1);//生日builder.Append(birthday.ToString("yyyyMMdd"));//四位随机数 不含Xbuilder.Append(ran.Next(9000) + 1000);//四位随机数 含X//builder.Append(ran.Next() % 2 == 0 ? ran.Next(9000) + 1000 + "" : ran.Next(900) + 100 + "X");return builder.ToString();}/// <summary>/// 生成身份证号/// </summary>/// <param name="age">年龄</param>/// <returns>随机身份证号</returns>public static string GenerateIdCardNumber(int age) {if (age < 1 || age > 99) {throw new Exception("年龄非法!");}builder.Clear();//6位地区 以鞍山为例 需要改成目标城市 后期会考虑根据参数生成builder.Append("21030");builder.Append(ran.Next(4) + 1);//年int year = DateTime.Now.Year;builder.Append(year - age);//月int month = ran.Next(12) + 1;if (month < 10) {builder.Append(0);}builder.Append(month);//日int day = 1;switch (month) {case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = ran.Next(31) + 1;break;case 4:case 6:case 9:case 11:day = ran.Next(30) + 1;break;case 2:day = ran.Next(27) + 1;break;}if (day < 10) {builder.Append(0);}builder.Append(day);//四位随机数 不含Xbuilder.Append(ran.Next(9000) + 1000);//四位随机数 含X//builder.Append(ran.Next() % 2 == 0 ? ran.Next(9000) + 1000 + "" : ran.Next(900) + 100 + "X");return builder.ToString();}/// <summary>/// 生成随机手机号码/// </summary>/// <returns>随机手机号</returns>public static String GenerateRandomTelephoneNumber() {builder.Clear();//第一位builder.Append(1);/** theboboy原创算法* 第二位(3或5或8)* 生成基数 0 1 2* *25得 0 25 50* /10得 0 2 5* +3得 3 5 8*/int temp = ran.Next(3) * 25 / 10 + 3;builder.Append(temp);//第三位130-139,150-159,186,187,188builder.Append((temp == 8) ? ran.Next(3) + 6 : ran.Next(10));//后八位 未考虑地区等 后期会考虑根据参数生成builder.Append(ran.Next(90000000) + 10000000);return builder.ToString();}}
}
转载于:.html
本文标签: theboboy原创 随机生成器 生成伪数据 用来做测试 CNet版本
版权声明:本文标题:theboboy原创 随机生成器 生成伪数据 用来做测试 C#.Net版本 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1693405094a220009.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论