.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 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
 19             while (intResultRound < intLength)
 20             {
 21                 //生成随机数A,表示生成类型
 22                 //1=数字,2=符号,3=小写字母,4=大写字母
 23
 24                 intA = ranA.Next(1, 5);
 25
 26                 //如果随机数A=1,则运行生成数字
 27                 //生成随机数A,范围在0-10
 28                 //把随机数A,转成字符
 29                 //生成完,位数+1,字符串累加,结束本次循环
 30
 31                 if (intA == 1 && booNumber)
 32                 {
 33                     intA = ranA.Next(0, 10);
 34                     strB = intA.ToString() + strB;
 35                     intResultRound = intResultRound + 1;
 36                     continue;
 37                 }
 38
 39                 //如果随机数A=2,则运行生成符号
 40                 //生成随机数A,表示生成值域
 41                 //1:33-47值域,2:58-64值域,3:91-96值域,4:123-126值域
 42
 43                 if (intA == 2 && booSign == true)
 44                 {
 45                     intA = ranA.Next(1, 5);
 46
 47                     //如果A=1
 48                     //生成随机数A,33-47的Ascii码
 49                     //把随机数A,转成字符
 50                     //生成完,位数+1,字符串累加,结束本次循环
 51
 52                     if (intA == 1)
 53                     {
 54                         intA = ranA.Next(33, 48);
 55                         strB = ((char)intA).ToString() + strB;
 56                         intResultRound = intResultRound + 1;
 57                         continue;
 58                     }
 59
 60                     //如果A=2
 61                     //生成随机数A,58-64的Ascii码
 62                     //把随机数A,转成字符
 63                     //生成完,位数+1,字符串累加,结束本次循环
 64
 65                     if (intA == 2)
 66                     {
 67                         intA = ranA.Next(58, 65);
 68                         strB = ((char)intA).ToString() + strB;
 69                         intResultRound = intResultRound + 1;
 70                         continue;
 71                     }
 72
 73                     //如果A=3
 74                     //生成随机数A,91-96的Ascii码
 75                     //把随机数A,转成字符
 76                     //生成完,位数+1,字符串累加,结束本次循环
 77
 78                     if (intA == 3)
 79                     {
 80                         intA = ranA.Next(91, 97);
 81                         strB = ((char)intA).ToString() + strB;
 82                         intResultRound = intResultRound + 1;
 83                         continue;
 84                     }
 85
 86                     //如果A=4
 87                     //生成随机数A,123-126的Ascii码
 88                     //把随机数A,转成字符
 89                     //生成完,位数+1,字符串累加,结束本次循环
 90
 91                     if (intA == 4)
 92                     {
 93                         intA = ranA.Next(123, 127);
 94                         strB = ((char)intA).ToString() + strB;
 95                         intResultRound = intResultRound + 1;
 96                         continue;
 97                     }
 98
 99                 }
100
101                 //如果随机数A=3,则运行生成小写字母
102                 //生成随机数A,范围在97-122
103                 //把随机数A,转成字符
104                 //生成完,位数+1,字符串累加,结束本次循环
105
106                 if (intA == 3 && booSmallword == true)
107                 {
108                     intA = ranA.Next(97, 123);
109                     strB = ((char)intA).ToString() + strB;
110                     intResultRound = intResultRound + 1;
111                     continue;
112                 }
113
114                 //如果随机数A=4,则运行生成大写字母
115                 //生成随机数A,范围在65-90
116                 //把随机数A,转成字符
117                 //生成完,位数+1,字符串累加,结束本次循环
118
119                 if (intA == 4 && booBigword == true)
120                 {
121                     intA = ranA.Next(65, 89);
122                     strB = ((char)intA).ToString() + strB;
123                     intResultRound = intResultRound + 1;
124                     continue;
125                 }
126             }
127             return strB;
128
129         }
130         #endregion

读取数据:

 1  private void button1_Click(object sender, EventArgs e)
 2         {
 3             foreach (var file in Directory.GetFiles("E:\\renew", "*.txt").Where(t => t.ToLower().EndsWith(".txt")).ToList())
 4             {
 5                 using (StreamReader reader = new StreamReader(file, Encoding.UTF8))
 6                 {
 7                     string strLine = string.Empty;
 8                     while ((strLine = reader.ReadLine()) != null)
 9                     {
10                         renewModel.Content = strLine;
11                         renewBLL.Add(renewModel);
12                     }
13                 }
14             }
15         }

写入数据:

 1   private void button2_Click(object sender, EventArgs e)
 2         {
 3             StreamWriter sw = new StreamWriter(@"E:\test.txt", true, Encoding.UTF8);
 4             List<string> list = new List<string>();
 5             while (1 == 1)
 6             {
 7                 string str = "CCKD";
 8                 str += GetRandomizer(5, true, false, false, true);
 9                 if (!list.Contains(str))
10                 {
11                     list.Add(str);
12                     sw.WriteLine(str);
13                     sw.Flush();
14                 }
15                 if (list.Count== 100000)
16                     break;
17             }
18             sw.Close();
19         }
时间: 2024-10-13 12:43:14

.NET(C#)生成指定长度的随机字符串的通用方法的相关文章

生成指定长度的随机字符串

/** * 生成随即密码 * @param pwd_len 生成的密码的总长度 * @return 密码的字符串 */ public String genRandomNum(int pwd_len) { //36个字母+10个数字 final int maxNum = 36; int i; // 生成的随机数 int count = 0; // 生成的密码的长度 char[] str = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k

commons-text 生成指定长度的随机字符串

package com.skylink.junge.demo; import java.util.HashSet; import java.util.Set; import org.apache.commons.text.RandomStringGenerator; import org.apache.commons.text.StrTokenizer; public class StrTokenizerTest { public static void main(String[] args)

python中生成一个指定长度的随机字符串实现示例

方法一:定义一个函数,参数为所要生成随机字符串的长度.通过random.randint(a, b)方法得到随机数字,具体函数如下: def generate_random_str(randomlength=16): """ 生成一个指定长度的随机字符串 """ random_str = '' base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789' le

随机得到指定长度的随机字符串,可以用于实现动态验证码

在开发过程中,可能需要得到指定长度的字符串,比如验证码就有这种需求,对此存在几种常见的方法,总结如下: 1.指定一个数组或者字符串,通过Math.random()得到一个随机数,并作为下表进行字符的获取,具体代码如下:. public String getRandomString2(Integer len){ char[] takeArr = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F','G','H','I'

获取指定长度的随机字符串

s = '' chars = 'abcdefghijklmnopqrstuvwxyz0123456789' length = len(chars) - 1 random = Random() for i in range(31): s += chars[random.randint(0, length)] x = int(time.time() * 1000) s = str(x)+s

Python--随机生成指定长度的密码

在浏览别人博客时学习了random模块,手痒自我练习下,写个随机生成指定长度的密码字符串的函数,拿出来供各位参考: 废话不多说,上代码: # coding: utf-8 import random import string SPECIAL_CHARS = '~%#%^&*' PASSWORD_CHARS = string.ascii_letters + string.digits + SPECIAL_CHARS def generate_random_password(password_len

生成指定长度的字符串

#region 生成指定长度的字符串 2 /// <summary> 3 /// 生成指定长度的字符串,即生成strLong个str字符串 4 /// </summary> 5 /// <param name="strLong">生成的长度</param> 6 /// <param name="str">以str生成字符串</param> 7 /// <returns></re

随机生成指定长度的密码之---Random

随机生成指定长度的密码思路: 1.密码中可能包含字母,数字,特殊符号,为了区别分别定义常量 2.随机生成密码,自然想到要用到java.util.Random 类 3.定义一个带两个参数的方法,1跟2,分别指定密码内容类型和密码长度 具体实现过程: import java.util.Random;/** * @author * @date 创建时间: * @version 1.0 * @parameter * @since * @return */public class RandomChar {

创建指定数量的随机字符串

/** * 创建指定数量的随机字符串 * * @param numberFlag * 是否是数字 * @param length * @return String */ private static String createRandom(boolean numberFlag, int length) { String retStr = ""; String strTable = numberFlag ? "1234567890" : "123456789