/// <summary>
/// 类说明:RandHelper类,用来实现取随机
/// 编码日期:2015-12-29
/// 编 码 人:里程碑
/// 修改日期:2015-12-29
/// 版 本 号:1.0
/// </summary>
using System;
using System.Collections.Generic;
using System.Text;

namespace DotNet.Utilities
{
    /// <summary>
    /// 随机操作帮助类
    /// </summary>
    public class RandHelper
    {
        private Random _random;
        public RandHelper()
        {
            //为随机数对象赋值
            this._random = new Random();
        }
        /// <summary>
        /// 随机范围数字
        /// </summary>
        /// <param name="min">最小</param>
        /// <param name="max">最大</param>
        /// <returns></returns>
        public string RandNext(int min, int max)
        {
            return _random.Next(min, max).ToString();
        }
        /// <summary>
        /// 返回一个介于0.0与1.0之间的随机数
        /// </summary>
        /// <returns></returns>
        public string RandNextDouble()
        {
            return _random.NextDouble().ToString();
        }
        /// <summary>
        /// 随机数字
        /// </summary>
        /// <param name="len">长度</param>
        /// <returns></returns>
        public string RandNum(int len)
        {
            string str = string.Empty;
            ; i < len; i++)
            {
                str += _random.Next(, );
            }
            return str;
        }
        /// <summary>
        /// 随机英文
        /// </summary>
        /// <param name="Length">长度</param>
        /// <param name="type">类型,0=小写,1=大写,2=混合,默认小写</param>
        /// <returns></returns>
        )
        {
            string[] s1 = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
            //定义一个新字符串
            string NewText = string.Empty;
            ; m < Length; m++)
            {
                NewText = NewText + s1[_random.Next(, s1.Length)];
            }
            )
            {
                NewText = NewText.ToLower();
            }
            )
            {
                NewText = NewText.ToUpper();
            }
            return NewText;
        }
        /// <summary>
        /// 生成随机姓氏
        /// </summary>
        /// <returns></returns>
        public string RandName()
        {
            /// <summary>
            /// 百家姓
            /// </summary>
            string firstName = "赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏陶姜戚谢邹喻柏水窦章云苏潘葛奚范彭郎鲁韦昌马苗凤花方俞任袁柳酆鲍史唐费廉岑薛雷贺倪汤滕殷罗毕郝邬安常乐于时傅皮卞齐康伍余元卜顾孟平黄和穆萧尹姚邵湛汪祁毛禹狄米贝明臧计伏成戴谈宋茅庞熊纪舒屈项祝董梁杜阮蓝闵席季麻强贾路娄危江童颜郭梅盛林刁钟徐邱骆高夏蔡田樊胡凌霍虞万支柯昝管卢莫柯房裘缪干解应宗丁宣贲邓郁单杭洪包诸左石崔吉钮龚程嵇邢滑裴陆荣翁荀羊于惠甄曲家封芮羿储靳汲邴糜松井段富巫乌焦巴弓牧隗山谷车侯宓蓬全郗班仰秋仲伊宫宁仇栾暴甘钭历戎祖武符刘景詹束龙叶幸司韶郜黎蓟溥印宿白怀蒲邰从鄂索咸籍赖卓蔺屠蒙池乔阳郁胥能苍双闻莘党翟谭贡劳逄姬申扶堵冉宰郦雍却璩桑桂濮牛寿通边扈燕冀浦尚农温别庄晏柴瞿阎充慕连茹习宦艾鱼容向古易慎戈廖庾终暨居衡步都耿满弘匡国文寇广禄阙东欧殳沃利蔚越夔隆师巩厍聂晁勾敖融冷訾辛阚那简饶空曾毋沙乜养鞠须丰巢关蒯相查后荆红游竺权逮盍益桓公";
            , firstName.Length - ), ));
        }
        public string RandChinese(int strlength)
        {
            //定义一个字符串数组储存汉字编码的组成元素
            ] { ", "a", "b", "c", "d", "e", "f" };

            Random rnd = new Random();

            //定义一个object数组用来
            object[] bytes = new object[strlength];

            /*每循环一次产生一个含两个元素的十六进制字节数组,并将其放入bject数组中
           每个汉字有四个区位码组成
           区位码第1位和区位码第2位作为字节数组第一个元素
           区位码第3位和区位码第4位作为字节数组第二个元素
           */
            ; i < strlength; i++)
            {
                //区位码第1位
                , );
                string str_r1 = rBase[r1].Trim();

                //区位码第2位
                rnd = new Random(r1 * unchecked((int)DateTime.Now.Ticks) + i);//更换随机数发生器的 

                //种子避免产生重复值
                int r2;
                )
                {
                    r2 = rnd.Next(, );
                }
                else
                {
                    r2 = rnd.Next(, );
                }
                string str_r2 = rBase[r2].Trim();

                //区位码第3位
                rnd = new Random(r2 * unchecked((int)DateTime.Now.Ticks) + i);
                , );
                string str_r3 = rBase[r3].Trim();

                //区位码第4位
                rnd = new Random(r3 * unchecked((int)DateTime.Now.Ticks) + i);
                int r4;
                )
                {
                    r4 = rnd.Next(, );
                }
                )
                {
                    r4 = rnd.Next(, );
                }
                else
                {
                    r4 = rnd.Next(, );
                }
                string str_r4 = rBase[r4].Trim();

                //定义两个字节变量存储产生的随机汉字区位码
                );
                );
                //将两个字节变量存储在字节数组中
                byte[] str_r = new byte[] { byte1, byte2 };

                //将产生的一个汉字的字节数组放入object数组中
                bytes.SetValue(str_r, i);

            }
            //获取GB2312编码页(表)
            Encoding gb = Encoding.GetEncoding("gb2312");
            string str1 = string.Empty;
            ; i < bytes.Length; i++)
            {
                str1 += gb.GetString((byte[])Convert.ChangeType(bytes[i], typeof(byte[])));
            }

            return str1;

        }
    }
}

RandHelper的更多相关文章

  1. C# 常用方法——生成验证码

    其他常用方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html 原文链接:https://www.cnblogs.com/morang/p/405 ...

随机推荐

  1. 在公有云AZURE上部署私有云AZUREPACK以及WEBSITE CLOUD(四)

    (四)搭建Website Cloud环境 1安装CONTROLLER主机 在开始安装Web site Cloud之前,读者应该对该服务的拓扑结构有个大概了解. 如图: Controller是非常重要的 ...

  2. thinkphp怎么修改配置进入默认首页

    thinkphp文件夹下config 里面有个convention.php文件 里面有三个配置 'DEFAULT_MODULE' => 'Home', // 默认模块 'DEFAULT_CONT ...

  3. [python] CSV read and write using module xlrd and xlwt

    1. get data from csv, skip header of the file. with open('test_data.csv','rb,) as csvfile: readCSV = ...

  4. Windows下快速安装Flask的一次经历

    前提: 1.已安装python版本(一般都是2.X) 2.已安装easy_install python安装,记得配置Python的环境变量,例如:我的直接在Path上加 G:\Python 验证安装P ...

  5. Firebug调试js代码

    Firebug功能异常强大,不仅可以调试DOM,CSS,还可以调试JS代码,下面介绍一下调试JS. 1.认识console对象 console对象是Firebug内置的对象,该对象可以在代码中写入,可 ...

  6. Spring中常见的bean创建异常

    Spring中常见的bean创建异常 1. 概述     本次我们将讨论在spring中BeanFactory创建bean实例时经常遇到的异常 org.springframework.beans.fa ...

  7. spring springMVC

    spring是一个开源框架,是为了解决企业应用程序开发,功能如下 目的:解决企业应用开发的复杂性 功能:使用基本的javabean代替EJB,并提供了更多的企业应用功能 范围:任何java应用 总之: ...

  8. 做linux运维工程师,必须要掌握以下几个工具

    linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究 ...

  9. co源码解读

    背景: 闲来无事,翻了下co的源码来看,源码短小精悍,算上注释,一共240行左右: 决定写一篇博客来记录下学习的心得. TJ大神的co:https://github.com/tj/co 作用: co通 ...

  10. CentOS7中安装Python3.5

    1.下载 https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 2.上传到服务器 3. 安装相关依赖 yum install gcc ope ...