(原创)按照一定的格式生成一定数量的随机数的例子
2005-03-25 13:20
537 查看
在很多时候需要按照一定的格式生成一定数量的随机数,下面是实现方法
下面是自己写的类
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
下面是自己写的类
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
相关文章推荐
- 按照一定的格式生成一定数量的随机数的例子
- 转按照一定的格式生成一定数量的随机数的例子
- 按照一定的格式生成一定数量的随机数的例子
- 按照一定的格式生成一定数量的随机数的例子(转载)
- 按照一定的格式生成一定数量的随机数的例子
- PHP 生成一定数量的不重复随机数
- 生成一定数量的不重复随机数
- 按照一定的格式生成Bean
- 生成一定数量的不重复随机数
- Vb生成一定范围内的随机数(含小数部分)
- 随机数生成、检测非法字符、判断数字格式、是否为空、枚举值转化为数组
- 如何用matlab以一定概率生成随机数
- Flex中如何利用setInterval()和clearInterval()函数按照一定时间有规则的执行函数的例子
- 按照文本格式生成sql语句--查找并替换语句
- [原创.数据可视化系列之四]跨平台,多格式的等值线和等值面的生成
- 流水号生成方法——按照时间格式生成的有序唯一编码(支持并发)
- 例题:随机生成验证码。Random a=New Random(), 重点随机数格式 .Next , Substring
- java 根据给定的最小值和最大值生成指定数量的随机数
- 对一篇英文短文进行统计排序(标点不考虑)。生成这样的结果: 整理出现的26(也可能不足26)个字母,根据字母出现的数量由多到少排序。若数量相同则按照字母表顺序列。 生成的结果大致为“ffffffffffffffffffffeeeeeeerrrrrrzzzzzzaaabbccu”。