【转】C#产生随机字符的两段代码

废话不多说,直接上代码。

代码1.

 

        Random m_rnd  =   new  Random();
        
public   char  getRandomChar()
        {
            
int  ret  =  m_rnd.Next( 122 );
            
while  (ret  <   48   ||  (ret  >   57   &&  ret  <   65 ||  (ret  >   90   &&  ret  <   97 ))
            {
                ret 
=  m_rnd.Next( 122 );
            }
            
return  ( char )ret;
        }
        
public   string  getRandomString( int  length)
        {
            StringBuilder sb 
=   new  StringBuilder(length);
            
for  ( int  i  =   0 ; i  <  length; i ++ )
            {
                sb.Append(getRandomChar());
            }
            
return  sb.ToString();
        }     

 

 

代码2:--支持自定义字符混合

   // 随机字符串生成器的主要功能如下: 
        
// 1、支持自定义字符串长度
        
// 2、支持自定义是否包含数字
        
// 3、支持自定义是否包含小写字母
        
// 4、支持自定义是否包含大写字母
        
// 5、支持自定义是否包含特殊符号
        
// 6、支持自定义字符集

        
/// <summary>
        
/// 生成随机字符串
        
/// </summary>
        
/// <param name="length"> 目标字符串的长度 </param>
        
/// <param name="useNum"> 是否包含数字,1=包含,默认为包含 </param>
        
/// <param name="useLow"> 是否包含小写字母,1=包含,默认为包含 </param>
        
/// <param name="useUpp"> 是否包含大写字母,1=包含,默认为包含 </param>
        
/// <param name="useSpe"> 是否包含特殊字符,1=包含,默认为不包含 </param>
        
/// <param name="custom"> 要包含的自定义字符,直接输入要包含的字符列表 </param>
        
/// <returns> 指定长度的随机字符串 </returns>
         public   string  GetRnd( int  length,  bool  useNum,  bool  useLow,  bool  useUpp,  bool  useSpe,  string  custom)
        {
            
byte [] b  =   new   byte [ 4 ];
            
new  System.Security.Cryptography.RNGCryptoServiceProvider().GetBytes(b);
            Random r 
=   new  Random(BitConverter.ToInt32(b,  0 ));
            
string  s  =   null , str  =  custom;
            
if  (useNum  ==   true ) { str  +=   " 0123456789 " ; }
            
if  (useLow  ==   true ) { str  +=   " abcdefghijklmnopqrstuvwxyz " ; }
            
if  (useUpp  ==   true ) { str  +=   " ABCDEFGHIJKLMNOPQRSTUVWXYZ " ; }
            
if  (useSpe  ==   true ) { str  +=   " !\ " #$ %& ' ()*+,-./:;<=>?@[\\]^_`{|}~"; }
             for  ( int  i  =   0 ; i  <  length; i ++ )
            {
                s 
+=  str.Substring(r.Next( 0 , str.Length  -   1 ),  1 );
            }
            
return  s;
        }

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值