按照一定的格式生成一定數量的隨機數的例子

在很多時候需要按照一定的格式生成一定數量的隨機數,下面是實現方法

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

 
發佈了29 篇原創文章 · 獲贊 0 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章