(原创)按照一定的格式生成一定数量的随机数的例子

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在很多时候需要按照一定的格式生成一定数量的随机数,下面是实现方法

下面是自己写的类

public class MyRandom

{

private string _strin;

private string _strout;

private Random _rnd;

public MyRandom(string strin)

{

_rnd=new Random(System.Environment.TickCount);//确保每次使用得到不同的随机数,System.Environment.TickCount表示系统启动以来的毫秒数

_strin=strin;

}

private string GetOneRandomNum(string strformat)

{

string strtemp;

switch(strformat)

{

case "*":

{

int itmp=_rnd.Next(36);

if(itmp<10)

strtemp=_rnd.Next(10).ToString();

else

strtemp=Convert.ToChar(_rnd.Next(26)+'A').ToString();

break;

}

case "#":

{

strtemp=_rnd.Next(10).ToString();

break;

}

case "$":

{

strtemp=Convert.ToChar(_rnd.Next(26)+'A').ToString();

break;

}

default:

{

strtemp=strformat;

break;

}

}

return strtemp;

}

public string GetRandomNum()

{

_strout=String.Empty;

for(int i=0;i<_strin.Length;i++)

{

_strout+=this.GetOneRandomNum(_strin[i].ToString());

}

return _strout;

}

}

下面是这个类在控制台下的使用

Console.WriteLine("全是数字的随机数");

MyRandom rnd1=new MyRandom("####-####-####-####");

for(int i=0;i<10;i++)Console.WriteLine(rnd1.GetRandomNum());

Console.WriteLine("全是大写字母的随机数");

MyRandom rnd2=new MyRandom("$$$$-$$$$-$$$$-$$$$");

for(int i=0;i<10;i++)Console.WriteLine(rnd2.GetRandomNum());

Console.WriteLine("大写字母和数字混合随机数");

MyRandom rnd3=new MyRandom("****-****-****-****");

for(int i=0;i<10;i++)Console.WriteLine(rnd3.GetRandomNum());

Console.WriteLine("前4位为1234后面分别是4位数字4位字母4位混合的随机数,没有分隔符");

MyRandom rnd4=new MyRandom("1234####$$$$****");

for(int i=0;i<10;i++)Console.WriteLine(rnd4.GetRandomNum());

Console.ReadLine();

输出的结果是

全是数字的随机数

9162-4581-4990-0207

1783-0140-3387-3646

6080-4696-2719-0319

2333-1887-7581-7088

5239-3034-7103-0400

1859-3158-1128-8891

8337-9252-0859-7572

4798-5843-7571-7459

1846-0319-3294-5506

4941-8060-9004-4445

全是大写字母的随机数

XEQF-MOWD-MYYA-AFAS

CTVI-BEKC-JIVU-HRLR

RBXA-KSYR-HSEX-AHEX

GIII-DVWS-TNVD-TCVV

NHJY-IAHK-UDBI-AMBB

EXNZ-JCOV-EEGW-WVYE

XJKT-YFPG-AXOZ-UOSG

LTZW-OVLK-SNUE-TLOZ

FWLQ-CIDY-IHZM-OOBQ

LZKC-VCQB-YAAL-LKMP

大写字母和数字混合随机数

WQO1-WN57-R516-PROW

4SPU-DSKE-L5C1-DCJX

VO52-MAK5-3HU0-INQF

L6B3-YG0J-D5DS-K7NJ

TJ6Z-OM8I-PUFP-NPJW

GJA2-C80V-WZNL-7RZ9

AZMY-J4WX-00T1-DBNP

325A-WNIE-OPBB-7E4W

QQDN-AR5C-FAYY-Z4IV

SRWF-C9TN-LXIV-MUHF

前4位为1234后面分别是4位数字4位字母4位混合的随机数,没有分隔符

12342886ROADWN57

12348625EDCRPROW

12341446RPSUDSKE

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航