c#随机生成英文名
private static string GenerateSurname(){ string name = string.Empty; string[] currentConsonant; string[] vowels = "a,a,a,a,a,e,e,e,e,e,e,e,e,e,e,e,i,i,i,o,o,o,u,y,ee,ee,ea,ea,ey,eau,eigh,oa,oo,ou,ough,ay".Split(','); string[] commonConsonants = "s,s,s,s,t,t,t,t,t,n,n,r,l,d,sm,sl,sh,sh,th,th,th".Split(','); string[] averageConsonants = "sh,sh,st,st,b,c,f,g,h,k,l,m,p,p,ph,wh".Split(','); string[] middleConsonants = "x,ss,ss,ch,ch,ck,ck,dd,kn,rt,gh,mm,nd,nd,nn,pp,ps,tt,ff,rr,rk,mp,ll".Split(','); //Can't start string[] rareConsonants = "j,j,j,v,v,w,w,w,z,qu,qu".Split(','); Random rng = new Random(Guid.NewGuid().GetHashCode()); //http://codebetter.com/blogs/59496.aspx int[] lengthArray = new int[] { 2, 2, 2, 2, 2, 2, 3, 3, 3, 4 }; //Favor shorter names but allow longer ones int length = lengthArray[rng.Next(lengthArray.Length)]; for (int i = 0; i < length; i++) { int letterType = rng.Next(1000); if (letterType < 775) currentConsonant = commonConsonants; else if (letterType < 875 && i > 0) currentConsonant = middleConsonants; else if (letterType < 985) currentConsonant = averageConsonants; else currentConsonant = rareConsonants; name += currentConsonant[rng.Next(currentConsonant.Length)]; name += vowels[rng.Next(vowels.Length)]; if (name.Length > 4 && rng.Next(1000) < 800) break; //Getting long, must roll to save if (name.Length > 6 && rng.Next(1000) < 950) break; //Really long, roll again to save if (name.Length > 7) break; //Probably ridiculous, stop building and add ending } int endingType = rng.Next(1000); if (name.Length > 6) endingType -= (name.Length * 25); //Don't add long endings if already long else endingType += (name.Length * 10); //Favor long endings if short if (endingType < 400) { } // Ends with vowel else if (endingType < 775) name += commonConsonants[rng.Next(commonConsonants.Length)]; else if (endingType < 825) name += averageConsonants[rng.Next(averageConsonants.Length)]; else if (endingType < 840) name += "ski"; else if (endingType < 860) name += "son"; else if (Regex.IsMatch(name, "(.+)(ay|e|ee|ea|oo)$") || name.Length < 5) { name = "Mc" + name.Substring(0, 1).ToUpper() + name.Substring(1); return name; } else name += "ez"; name = name.Substring(0, 1).ToUpper() + name.Substring(1); //Capitalize first letter return name;} |
c#随机生成英文名的更多相关文章
- Vue | 指令实现自动翻译填充英文名功能
背景:应用系统中存在多个创建实体表单,表单填写时,在填写中文名称后,要填写对应的英文名作为标识或数据库查询索引. 需求:填写中文名的同时,系统自动生成英文名并填充到表单中,辅助用户操作,节约操作时间. ...
- 随机生成长度为len的密码,且包括大写、小写英文字母和数字
一道华三面试题,随机生成长度为len的密码,且包括大写.小写英文字母和数字,主要Random类的使用,random.nextInt(len)表示生成[0,len)整数.具体实现见下面代码,已经很详细了 ...
- Python:随机生成测试数据的模块--faker的基本使用
本文内容: faker的介绍 faker的使用 小例子:生成随机的数据表信息 首发日期:2018-06-15 faker介绍: faker是python的一个第三方模块,是一个github上的开源项目 ...
- sort()基础知识总结+超简短的英文名排序写法
结合前些天学的箭头函数我想到一种非常简短的sort排序写法:(这可能是最短的英文名排序方法了) 贴出来大家一起探讨一下: [4,1,2,32].sort((x,y)=>x>y); //[1 ...
- php之上传小案例,根据时间:月日分创建目录并随机生成文件名
<?php /* 接收文件,并分目录存储,生成随机文件名 1.根据时间戳,并按一定规则创建目录 2.获取文件名的后缀名 3.判断大小 */ //根据月日分计算并创建目录 function mk_ ...
- 用Java随机生成四则运算
代码链接:https://github.com/devilwjy/Code.Demo 需求分析: 1.程序可接收一个输入参数n,然后随机产生n道加减乘除练习题,每个数字在 0 和 100 之间,运算符 ...
- selenium + python自动化测试unittest框架学习(七)随机生成姓名
在自动化测试过程中经常要测试到添加用户的操作,每次都要输入中文,原本是找了十几个中文写成了列表,然后从列表中随机取出填入用户名文本框中,随着测试的增加,发现同名的人搜索出来一大堆,最后在网上找了个随机 ...
- 性能测试--Jmeter随机生成/随机选取/csv读取关键字
Jmeter随机生成/随机选取/csv读取关键字 一.随机生成关键字 随机生成关键字,需要组件:随机变量配置元件(Random Variable) 该组件的作用是生成字符+随机数字格式的字符串,并保 ...
- 503是一种HTTP状态码。英文名503 Service Unavailable与404(404 Not Found)是同属一种网页状态出错码。前者是服务器出错的一种返回状态,后者是网页程序没有相关的结果后返回的一种状态,需要优化网站的时候通常需要制作404出错页以便网站整体优化。
goldCat1 商城 消息 | 百度首页 新闻网页贴吧知道音乐图片视频地图百科文库 进入词条搜索词条帮助 近期有不法分子冒充官方收费编辑词条,百度百科严正声明:百科词条人人可编辑,词条创建和修改均免 ...
随机推荐
- ios中模态弹窗用法及UINavigationController基本用法
- (void)viewDidLoad { [super viewDidLoad]; //点击按钮跳转 loginViewController *vc=[[loginViewController al ...
- tp5 Excel导入
/** * 导入Excel功能 */ public function import(){ if (!empty($_FILES)) { $file = request()->file('impo ...
- ADO.NET 的五个对象
首先来一张关系图,了解大概关系. 知道了整个大关系之后,我们在具体看一下他们五个的分工: 1. SqlConnection 在访问数据时,我们首先必须要建立数据库的物理连接.· 2.SqlComman ...
- jsp弹窗并跳转
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExcepti ...
- webpack 3.X研究
目前webpack已经到了3.X版本,为了方便通过最新版本打包整个前端应用,现在开始对webpack操作进行简单介绍. 一.webpack安装 在安装webpack之前需要注意,webpack是通过n ...
- java基础(1)IntelliJ IDEA入门和数组操作 解决idea启动速度慢--配置JVM
一. IntelliJ IDEA入门 1 快捷键和技巧 智能补全代码,比如只写首字母按回车: psvm+Enter :public stactic void main(String[] args) s ...
- Dubbo的Filter链梳理---分组可见和顺序调整
前言: 刚刚写了篇博文: Dubbo透传traceId/logid的一种思路, 对dubbo的filter机制有了一个直观的理解. 同时对filter也多了一些好奇心, 好奇filter链是如何组织的 ...
- day01计算机基础
今日内容 1.计算机初步认识 1.计算机认识 1. 计算机基础 1.1硬件:cpu/内存/硬盘/主板/网卡 1.2操作系统 linux:免费开源 windows mac 1.3解释器/编译器 补充:编 ...
- 学习笔记TF023:下载、缓存、属性字典、惰性属性、覆盖数据流图、资源
确保目录结构存在.每次创建文件,确保父目录已经存在.确保指定路径全部或部分目录已经存在.创建沿指定路径上不存在目录. 下载函数,如果文件名未指定,从URL解析.下载文件,返回本地文件系统文件名.如果文 ...
- PythonStudy——可变与不可变 Variable and immutable
ls = [10, 20, 30] print(id(ls), ls) ls[0] = 100 print(id(ls), ls) print(id(10)) print(id(20)) print( ...