现在的位置: 首页 > 综合 > 正文

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

2012年10月22日 ⁄ 综合 ⁄ 共 2299字 ⁄ 字号 评论关闭

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

下面是自己写的类

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



抱歉!评论已关闭.