`
keepwork
  • 浏览: 332378 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
阅读更多
开发者博客:http://www.developsearch.com

/**
 * 随机数 生成器
 * 
 * @author chenxin
 * @version [版本号, 2012-5-21]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class RandomUtil {

	/**
     *该函数获得随机数字符串
     * 
     * @param iLen int :需要获得随机数的长度
     * @param iType int:随机数的类型:'0':表示仅获得数字随机数;'1':表示仅获得字符随机数;'2':表示获得数字字符混合随机数
     * @since 1.0.0
     * @return String
     */
    public static final String createRadom(int iLen, int iType)
    {
        StringBuffer strRandom = new StringBuffer();// 随机字符串
        Random rnd = new Random();
        if (iLen < 0)
        {
            iLen = 5;
        }
        if ((iType > 2) || (iType < 0))
        {
            iType = 2;
        }
        switch (iType)
        {
            case 0:
                for (int iLoop = 0; iLoop < iLen; iLoop++)
                {
                    strRandom.append(rnd.nextInt(10));
                }
                break;
            case 1:
                for (int iLoop = 0; iLoop < iLen; iLoop++)
                {
                    strRandom.append(Integer.toString(35 - rnd.nextInt(10), 36));
                }
                break;
            case 2:
                for (int iLoop = 0; iLoop < iLen; iLoop++)
                {
                    strRandom.append(Integer.toString(rnd.nextInt(36), 36));
                }
                break;
        }
        return strRandom.toString();
    }
    
    /**
     * get a integer array filled with random integer without reduplicate [min, max)
     * 
     * @param min the minimum value
     * @param max the maximum value
     * @param size the capacity of the array
     * @return a integer array filled with random integer without redupulicate
     */
    public static int[] getRandomIntWithoutReduplicate(int min, int max, int size)
    {
        int[] result = new int[size];
        
        int arraySize = max - min;
        int[] intArray = new int[arraySize];
        // init intArray
        for (int i = 0; i < intArray.length; i++)
        {
            intArray[i] = i + min;
        }
        // get randome interger without reduplicate
        for (int i = 0; i < size; i++)
        {
            int c = getRandomInt(min, max - i);
            int index = c - min;
            swap(intArray, index, arraySize - 1 - i);
            result[i] = intArray[arraySize - 1 - i];
        }
        
        return result;
    }
    
    private static void swap(int[] array, int x, int y)
    {
        int temp = array[x];
        array[x] = array[y];
        array[y] = temp;
    }
    
    /**
     * get a random Integer with the range [min, max)
     * 
     * @param min the minimum value
     * @param max the maximum value
     * @return the random Integer value
     */
    public static int getRandomInt(int min, int max)
    {
        // include min, exclude max
        int result = min + (int)(Math.random() * (max - min));
        
        return result;
    }
    
    /**
     * get a random double with the range [min, max)
     * 
     * @param min the minimum value
     * @param max the maximum value
     * @return the random double value
     */
    public static double getRandomDouble(double min, double max)
    {
        // include min, exclude max
        double result = min + (Math.random() * (max - min));
        return result;
    }
    
    /**
     * a random char with the range ASCII 33(!) to ASCII 126(~)
     * <功能详细描述>
     * @return char
     * @see [类、类#方法、类#成员]
     */
    public static char getRandomChar()
    {
        // from ASCII code 33 to ASCII code 126
        int firstChar = 33; // "!"
        int lastChar = 126; // "~"
        char result = (char)(getRandomInt(firstChar, lastChar + 1));
        return result;
    }
    
    /**
     * a random char with the range [0-9],[a-z],[A-Z]
     * <功能详细描述>
     * @return char
     * @see [类、类#方法、类#成员]
     */
    public static char getRandomNormalChar()
    {
        // include 0-9,a-z,A-Z
        int number = getRandomInt(0, 62);
        int zeroChar = 48;
        int nineChar = 57;
        int aChar = 97;
        int zChar = 122;
        int capitalAChar = 65;
        int capitalZChar = 90;
        
        char result;
        
        if (number < 10)
        {
            result = (char)(getRandomInt(zeroChar, nineChar + 1));
            return result;
            
        }
        else if (number >= 10 && number < 36)
        {
            result = (char)(getRandomInt(capitalAChar, capitalZChar + 1));
            return result;
        }
        else if (number >= 36 && number < 62)
        {
            result = (char)(getRandomInt(aChar, zChar + 1));
            return result;
        }
        else
        {
            return 0;
        }
    }
    
    /**
     * getRandomString
     * @param length the length of the String
     * @return a String filled with random char
     */
    public static String getRandomString(int length)
    {
        // include ASCII code from 33 to 126
        StringBuffer result = new StringBuffer();
        for (int i = 0; i < length; i++)
        {
            result.append(getRandomChar());
        }
        return result.toString();
    }
    
    /**
     * getRandomNormalString
     * @param length the length of the String
     * @return a String filled with normal random char
     */
    public static String getRandomNormalString(int length)
    {
        // include 0-9,a-z,A-Z
        StringBuffer result = new StringBuffer();
        for (int i = 0; i < length; i++)
        {
            result.append(getRandomNormalChar());
        }
        return result.toString();
    }



    //给定范围获得随机颜色 
    public Color getRandColor(int fc, int bc) {   
        Random random = new Random();    
        if (fc > 255)    
            fc = 255;    
        if (bc > 255)    
            bc = 255;    
        int r = fc + random.nextInt(bc - fc);    
        int g = fc + random.nextInt(bc - fc);    
        int b = fc + random.nextInt(bc - fc);    
        return new Color(r, g, b);    
    }



}
分享到:
评论

相关推荐

    java RandomUtil

    实现了java,随机数生成的工具类,可以直接拿来使用。

    随机数工具类

    本篇文章将详细讲解一个名为"RandomUtil"的随机数工具类,该工具类通常用于方便地生成各种类型的随机数,包括整数、浮点数以及指定范围内的随机数。我们将探讨其核心功能、实现原理以及如何在实际项目中使用。 首先...

    RandomUtil.java

    Java开发中中经常使用的Java工具类分享,工作中用得上,直接拿来使用,不用重复造轮子。

    day12_函数式接口、方法引用_每日作业卷1

    RandomUtil randomUtil = new RandomUtil(); getRandomNumFromOneToNum(10, randomUtil::nextInt); getRandomNumFromAToB(5, 15, randomUtil::nextInt); getRandomNumFromArray(new int[]{1, 2, 3, 4, 5}, ...

    自己编写的基于jdk1.5的开源工具包

    (RandomUtil.java)随机函数处理类 (OperationUtil.java)Collection工具包类(CollectionUtil.java)等等,如果下载者觉得使用方面的话,在下十分感谢,申明:代码没有经过十分严格测试,纯属自己爱好和方便编写...

    Java8中的java.util.Random类文章代码

    Java8中的java.util.Random类 文章代码,不多解释啦,不需要你安装其它的jar包。

    SpringBoot实现验证码功能

    String captchaText = RandomUtil.randomStr(4); // 随机生成验证码文本 session.setAttribute("captcha", captchaText); // 存储验证码到session return captchaBytes; } @PostMapping("/checkCaptcha") ...

    JAVA工具类项目(用于平时的开发)

    8. **其他工具**:还有如`RandomUtil`用于生成随机数,`StringUtil`处理字符串,`RegexUtil`进行正则表达式匹配,`Convert`进行类型转换,以及`CodeUtil`处理编码问题等。 Hutool的设计理念是“简单易用”,它的每...

    基于Java的加密解密工具集 JCT v1.0源码包.zip

    JCT可能会包含一个RandomUtil类,提供安全的随机数生成。 8. **加密解密接口**:为了实现灵活性,JCT可能会定义一套统一的加密解密接口,允许开发者自定义加密算法或适配第三方库。 9. **代码示例和文档**:源码包...

    从零开始写一个验证码登录系统.docx

    在示例代码中,`RandomUtil.randomNumbers(5)` 方法生成了一个5位的随机数字验证码。您可以根据需求调整验证码的长度和字符类型,例如包含字母和数字的混合验证码。 接下来,验证码的存储至关重要。在这个例子中,...

    hutool工具类,集成了大部分util工具,减少开发代码.rar

    7. **随机数与验证码**:RandomUtil生成随机数,包括整数、浮点数、字符串等,而CodeUtil则可生成各种验证码,如数字、字母或组合型验证码。 8. **JSON操作**:JsonUtil提供了JSON对象的序列化和反序列化功能,支持...

    群体(大小为N的数组)中随机抽取一定数量(M个)的样本1

    代码实现中,`RandomUtil` 类包含了一个名为 `getSimple()` 的静态方法,该方法接受两个参数,一个是原始数组(num),另一个是要抽取的样本数量(k)。方法首先检查输入的合理性,然后创建一个大小为k的结果数组...

    java开发,30个常用工具类总结,全部来自项目实践中用到的工具类

    5. **RandomUtil**: 提供随机数生成的工具类,可以生成指定范围内的整数、浮点数,或者随机字符串。它可能包括了Java内置的`java.util.Random`类的扩展,或者使用了其他库如Apache Commons Lang的`RandomUtils`。 ...

    Hutool+Wiki.zip

    除了以上模块,Hutool还包含了BeanUtil(对象操作)、JsonUtil(JSON操作)、RandomUtil(随机数生成)等工具类,涵盖了开发中的诸多方面。 通过阅读“Hutool+Wiki.pdf”,开发者可以深入了解每个工具类的使用方法...

    Hutool的api等可参考的文档

    - **随机工具**:`RandomUtil`生成随机数。 - **网络工具**:`NetUtil`处理网络相关操作,如IP地址、端口等。 - **唯一ID**:`IdUtil`生成唯一的ID。 - **压缩工具**:`ZipUtil`实现文件或目录的压缩和解压。 -...

    Android开发常见的136个工具类.rar

    12. 随机数生成工具类(RandomUtil):生成指定范围内的随机数,可用于模拟数据或游戏开发。 13. 代码混淆工具类(ProguardUtil):提供代码混淆的相关配置和处理,用于保护应用的源代码安全。 14. 缓存管理工具类...

    Java常用函数大全

    9. **RandomUtil.java**: 随机数在很多场景下都很有用,这个类可能提供了生成随机数或者随机字符串的方法,如`nextInt()`、`nextDouble()`、`generateRandomString()`等。 以上就是对给定文件名称的分析,每个文件...

    SpringBoot+Security 发送短信验证码的实现

    return RandomUtil.randomNumbers(6); } } ``` 接下来,我们需要定义一个`SmsCodeSender`接口,它将包含发送短信的抽象方法。例如: ```java public interface SmsCodeSender { boolean send(String mobile, ...

    Hutool 参考文档.pdf

    类加载工具(ClassLoaderUtil)、枚举工具(EnumUtil)、命令行工具(RuntimeUtil)、数字工具(NumberUtil)、数组工具(ArrayUtil)、随机工具(RandomUtil)、网络工具(NetUtil)和唯一ID工具(IdUtil)等提供了...

    java项目_吃豆豆_源码及文档

    类名称 RandomUtil 类描述 数学类-随机数生成类 包描述 tools 函数描述 public static int randomInt(int a,int b) 生成a-b的随机数 public static int randomInt(int a) 返回0-a的随机数。 c) 程序效果图 五...

Global site tag (gtag.js) - Google Analytics