随机字符串生成程序
来源:互联网 发布:剑雨江湖灵宠进阶数据 编辑:程序博客网 时间:2024/06/04 20:14
/// <summary> /// 自定义随机字符串生成器 /// </summary> public class Randomizer { public Randomizer() { // // TODO: 在此处添加构造函数逻辑 // } /// <summary> /// 自定义随机字符串(其中可包含数字,符号,大小写字母)的生成方法. /// </summary> /// <param name="intLength">需要位数</param> /// <param name="booNumber">是否生成数字</param> /// <param name="booSign">是否生成符号</param> /// <param name="booSmallword">是否生成小写字母</param> /// <param name="booBigword">是否生成大写字母</param> /// <returns></returns> public string getRandomizer(int intLength,bool booNumber,bool booSign,bool booSmallword,bool booBigword) { //定义 Random ranA = new Random(); int intResultRound = 0; int intA = 0; string strB = ""; while (intResultRound < intLength) { //生成随机数A,表示生成类型 //1=数字,2=符号,3=小写字母,4=大写字母 intA = ranA.Next(1, 5); //如果随机数A=1,则运行生成数字 //生成随机数A,范围在0-10 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 1 && booNumber) { intA = ranA.Next(0, 10); strB = intA.ToString() + strB; intResultRound = intResultRound + 1; continue; } //如果随机数A=2,则运行生成符号 //生成随机数A,表示生成值域 //1:33-47值域,2:58-64值域,3:91-96值域,4:123-126值域 if (intA == 2 && booSign == true) { intA = ranA.Next(1, 5); //如果A=1 //生成随机数A,33-47的Ascii码 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 1) { intA = ranA.Next(33, 48); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } //如果A=2 //生成随机数A,58-64的Ascii码 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 2) { intA = ranA.Next(58, 65); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } //如果A=3 //生成随机数A,91-96的Ascii码 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 3) { intA = ranA.Next(91, 97); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } //如果A=4 //生成随机数A,123-126的Ascii码 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 4) { intA = ranA.Next(123, 127); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } } //如果随机数A=3,则运行生成小写字母 //生成随机数A,范围在97-122 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 3 && booSmallword == true) { intA = ranA.Next(97, 123); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } //如果随机数A=4,则运行生成大写字母 //生成随机数A,范围在65-90 //把随机数A,转成字符 //生成完,位数+1,字符串累加,结束本次循环 if (intA == 4 && booBigword == true) { intA = ranA.Next(65, 89); strB = ((char)intA).ToString() + strB; intResultRound = intResultRound + 1; continue; } } return strB; } }