C#中如何产生随机字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中如何产生随机字符串相关的知识,希望对你有一定的参考价值。

如何例用C#产生 A到Z 数字0到9 两种组和之间的随机字符串 要求是
第次不能重复 而且每次都要有 数字和字母两者 字数是 20位
我想要的是 两次产生 或是多次产生的串列 没有相同的 而不是单次里面没有重复的字符 但是一定要是数字和字母都有的 这样我想你搞起来会更简单吧 呵呵

loop:
List<string> strList = new List<string>();//创建一个存放A到Z,0到9的字符串列表
for (int i = 65; i <= 90; i++)

char aa =(char) i;
strList.Add(aa.ToString());//把A到Z放到列表中

char[] number=new char[10];//把0到9字符存入字符数组中
for (int i = 48; i <= 57; i++)

char aa = (char)i;
strList.Add(aa.ToString());//把A到Z放到列表中
number[i-48]=aa;


string resultStr = "";//你要的字符串
for (int i = 0; i < 20; i++)

Random random = new Random();
int index = random.Next(strList.Count);
resultStr = resultStr + strList[index];
strList.RemoveAt(index);


if (resultStr.IndexOfAny(number) == -1)//判断是否含有数字,没有则重新生成字符串

goto loop;//跳到上面


这样产生的字符串,字符不会有重复的。而且一定会有两字符和数字的。
我已经调试过了,你看看结果。
我运行的结果是:768543210ZYXWVUTSRQ9
参考技术A public string CreateCheckCode()

char[] CharArray = 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9';
string sCode = "";
Random random = new Random();
for (int i = 0; i < 20; i++)

sCode += CharArray[random.Next(CharArray.Length)];

return sCode;


补充:你定义一个集合(Collection),用于保存两次生成的sCode
参考技术B private int rep = 0;

private string GenerateCheckCode()

string str = string.Empty;
long num2 = DateTime.Now.Ticks + this.rep;
this.rep++;
Random random = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
Random r = new Random(((int)(((ulong)num2) & 0xffffffffL)) | ((int)(num2 >> this.rep)));
int n = r.Next(6, 11);
for (int i = 0; i <n; i++)


char ch;
int num = random.Next();

if ((num % 2) == 0)

ch = (char)(0x30 + ((ushort)(num % 10)));

else

ch = (char)(0x41 + ((ushort)(num % 0x1a)));

str = str + ch.ToString();


return str;

生成5-10个字符之间的随机字符串。

c#中,怎么产生一个随机数?

使用Random 类生成一个随机数字。

这里用循环来举例

for(int i=0;i<10;i++)

Random rd = new Random();

Console.WriteLine(rd.Next(10,100).ToString());

这个例子会得到10个相同的随机数,应循环完成的时间是非常短,所以根据系统时间作为种子算出的随机数就会是一样的。所以Random循环只适用于要求比较低的情况。

拓展内容:

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。

C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。

C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。

参考资料:百度百科——C#

参考技术A

函数是这样用,比如100至999的随机数

Random ran=new Random();
int RandKey=ran.Next(100,999);

参考技术B Random rd = new Random();     
int i = rd.Next(1,100); //1到100之间的数,可任意更改
参考技术C Random Random1 = new Random();//产生0到1000的随机数int i1=Random1.Next(0,1001);//产生0到9的随机数int i2=Random1.Next(0,10);//产生0到100的随机数int i3=Random1.Next(0,101); 参考技术D Random rd = new Random();     
int i = rd.Next();
Next()方法进行了重载,可以通过设置不同的形参来达到自己想要的随机数。
另外,C#与C++不同,它一开始就已经对他的随机数算子进行了默认设定(C++需要程序员自己设定,否则每次运行程序时,所产生的随机数序列是一致的)。

以上是关于C#中如何产生随机字符串的主要内容,如果未能解决你的问题,请参考以下文章

用C#产生随机字符窜

c++中如何产生随机字符串

如何生成保存到数组中的随机字符串? c# [重复]

如何从 C# 中的两个数组中获取两个随机字符串

随机选择一个数组 C# [关闭]

如何在 C# 数组字符串中选择 5 位随机数? [复制]