.Net源码论坛 [ 繁体中文 ]

发新话题 回复该主题

分享.NET(C#)生成指定长度的随机字符串的通用方法 [复制链接]

楼主
分享.NET(C#)生成指定长度的随机字符串的通用方法,此方法可以指定字符串的长度,是否包含数字,是否包含符号,是否包含小写字母,是否包含大写字母等,具体实现代码如下:
  1. #region 生成指定长度的随机字符串
  2.     /// <summary>
  3.     /// 生成指定长度的随机字符串
  4.     /// </summary>
  5.     /// <param name="intLength">随机字符串长度</param>
  6.     /// <param name="booNumber">生成的字符串中是否包含数字</param>
  7.     /// <param name="booSign">生成的字符串中是否包含符号</param>
  8.     /// <param name="booSmallword">生成的字符串中是否包含小写字母</param>
  9.     /// <param name="booBigword">生成的字符串中是否包含大写字母</param>
  10.     /// <returns></returns>
  11.     public static string GetRandomizer(int intLength, bool booNumber, bool booSign, bool booSmallword, bool booBigword)
  12.     {
  13.       //定义  
  14.       Random ranA = new Random();
  15.       int intResultRound = 0;
  16.       int intA = 0;
  17.       string strB = "";

  18.       while (intResultRound < intLength)
  19.       {
  20.         //生成随机数A,表示生成类型  
  21.         //1=数字,2=符号,3=小写字母,4=大写字母  

  22.         intA = ranA.Next(1, 5);

  23.         //如果随机数A=1,则运行生成数字  
  24.         //生成随机数A,范围在0-10  
  25.         //把随机数A,转成字符  
  26.         //生成完,位数+1,字符串累加,结束本次循环  

  27.         if (intA == 1 && booNumber)
  28.         {
  29.           intA = ranA.Next(0, 10);
  30.           strB = intA.ToString() + strB;
  31.           intResultRound = intResultRound + 1;
  32.           continue;
  33.         }

  34.         //如果随机数A=2,则运行生成符号  
  35.         //生成随机数A,表示生成值域  
  36.         //1:33-47值域,2:58-64值域,3:91-96值域,4:123-126值域  

  37.         if (intA == 2 && booSign == true)
  38.         {
  39.           intA = ranA.Next(1, 5);

  40.           //如果A=1  
  41.           //生成随机数A,33-47的Ascii码  
  42.           //把随机数A,转成字符  
  43.           //生成完,位数+1,字符串累加,结束本次循环  

  44.           if (intA == 1)
  45.           {
  46.             intA = ranA.Next(33, 48);
  47.             strB = ((char)intA).ToString() + strB;
  48.             intResultRound = intResultRound + 1;
  49.             continue;
  50.           }

  51.           //如果A=2  
  52.           //生成随机数A,58-64的Ascii码  
  53.           //把随机数A,转成字符  
  54.           //生成完,位数+1,字符串累加,结束本次循环  

  55.           if (intA == 2)
  56.           {
  57.             intA = ranA.Next(58, 65);
  58.             strB = ((char)intA).ToString() + strB;
  59.             intResultRound = intResultRound + 1;
  60.             continue;
  61.           }

  62.           //如果A=3  
  63.           //生成随机数A,91-96的Ascii码  
  64.           //把随机数A,转成字符  
  65.           //生成完,位数+1,字符串累加,结束本次循环  

  66.           if (intA == 3)
  67.           {
  68.             intA = ranA.Next(91, 97);
  69.             strB = ((char)intA).ToString() + strB;
  70.             intResultRound = intResultRound + 1;
  71.             continue;
  72.           }

  73.           //如果A=4  
  74.           //生成随机数A,123-126的Ascii码  
  75.           //把随机数A,转成字符  
  76.           //生成完,位数+1,字符串累加,结束本次循环  

  77.           if (intA == 4)
  78.           {
  79.             intA = ranA.Next(123, 127);
  80.             strB = ((char)intA).ToString() + strB;
  81.             intResultRound = intResultRound + 1;
  82.             continue;
  83.           }

  84.         }

  85.         //如果随机数A=3,则运行生成小写字母  
  86.         //生成随机数A,范围在97-122  
  87.         //把随机数A,转成字符  
  88.         //生成完,位数+1,字符串累加,结束本次循环  

  89.         if (intA == 3 && booSmallword == true)
  90.         {
  91.           intA = ranA.Next(97, 123);
  92.           strB = ((char)intA).ToString() + strB;
  93.           intResultRound = intResultRound + 1;
  94.           continue;
  95.         }

  96.         //如果随机数A=4,则运行生成大写字母  
  97.         //生成随机数A,范围在65-90  
  98.         //把随机数A,转成字符  
  99.         //生成完,位数+1,字符串累加,结束本次循环  

  100.         if (intA == 4 && booBigword == true)
  101.         {
  102.           intA = ranA.Next(65, 89);
  103.           strB = ((char)intA).ToString() + strB;
  104.           intResultRound = intResultRound + 1;
  105.           continue;
  106.         }
  107.       }
  108.       return strB;

  109.     }
  110.     #endregion
复制代码
文章来源【图享】:分享.NET(C#)生成指定长度的随机字符串的通用方法
分享 转发
TOP
沙发

正好用到
TOP
板凳

不错,,
TOP
地板

学习学习。。。。。
TOP
五楼

有用哦,谢谢楼主了 学习学习。。。。。
TOP
六楼

回复 5楼st88417的帖子

相互学习,呵呵。。。
TOP
七楼

回复 4楼AIIIIIIIII的帖子

相互学习,呵呵。。。
TOP
八楼

回复 3楼ijiafen的帖子

谢谢...
TOP
九楼

回复 2楼dream50long的帖子

相互学习,呵呵。。。
TOP
十楼

好东西啊
TOP
发新话题 回复该主题