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 商城 消息 | 百度首页 新闻网页贴吧知道音乐图片视频地图百科文库 进入词条搜索词条帮助 近期有不法分子冒充官方收费编辑词条,百度百科严正声明:百科词条人人可编辑,词条创建和修改均免 ...
随机推荐
- JavaScript 简单的实现 sleep功能 .
function start(){ // console.log("Request handle 'start' was called."); function sleep(mil ...
- 12--Python入门--文件读写--TXT文件
在进行数据分析之前,可能需要读写自己的数据文件.或者在完成数据分析之后,想把结果输出到外部的文件在Python中,利用pandas模块中的几个函数,可以轻松实现这些功能,利用pandas读取文件之后数 ...
- 神州数码多区域OSPF配置
实验要求:掌握多区域OSPF配置 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip address ...
- Apache Shiro 快速入门教程,shiro 基础教程
第一部分 什么是Apache Shiro 1.什么是 apache shiro : Apache Shiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理 ...
- python int str
1. int 类型转换 a = "123" b = int(a) b = b+10 print(type(a),a) print(type(b),b) 2. int(num,bas ...
- Git源码安装 Linux指定安装目录
1.安装依赖包 $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 2.下载最新版源码包https: ...
- C#泛型中的抗变和协变
在.net4之前,泛型接口是不变的..net4通过协变和抗变为泛型接口和泛型委托添加了一个重要的拓展 1.抗变:如果泛型类型用out关键字标注,泛型接口就是协变的.这也意味着返回类型只能是T. 实例: ...
- 使用 JavaScript 截屏
经常在微博上看到很多内容使用的什么长微博截图,并且截图上还附加了很多其他的信息.之前对纯前端截图有些研究,正好本博客有这个需求,今天就把这东西实现了下. 需要声明的是,JavaScript 目前还不能 ...
- js数字自执行随机滚动
每三秒执行一次,若是需要触发执行,可添加一个单击事件.<!DOCTYPE HTML> <html> <head> <meta http-equiv=" ...
- 20165308 2017-2018-2 《Java程序设计》课程总结
20165308 2017-2018-2 <Java程序设计>课程总结 一.每周作业及实验报告链接汇总 我期待的师生关系 学习基础和c语言调查 Linux 安装及学习 第一周学习总结 第二 ...