`
h2626819
  • 浏览: 46094 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

常用的java函数(十)随机函数

阅读更多
*
 * @author talent_marquis<��˺��>
 * Email: talent_marquis@163.com
 * Copyright (C) 2007 talent_marquis<��˺��>
 * All rights reserved.
 */
package com.dextrys.trilogy.util;

import java.util.Arrays;

import org.eclipse.swt.graphics.RGB;

public class RandomUtil
{

    /**
     * @param args
     */
    public static void main( String[] args )
    {
        //System.out.println( getRandomNormalString( 8 ) );
        int[] test = getRandomIntWithoutReduplicate( 0, 40, 39 );
        Arrays.sort( test );
        for( int i : test )
        {
            System.out.println( i );
        }
    }

    /**
     * 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 + new Double( Math.random() * ( max - min ) ).intValue();

        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;
    }

    /**
     * 
     * @return a random char with the range ASCII 33(!) to ASCII 126(~)
     */
    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;
    }
    
    /**
     * 
     * @return a random rgb color
     */
    public static RGB getRandomRGB()
    {
        int red = getRandomInt(0,256);
        int green = getRandomInt(0,256);
        int blue = getRandomInt(0,256);
        
        return new RGB( red, green, blue );
    }
    
    /**
     * 
     * @return a random char with the range [0-9],[a-z],[A-Z]
     */
    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 AChar = 65;
        int ZChar = 90;
        
        char result;
        
        if( number < 10 )
        {
            result =  ( char ) ( getRandomInt( zeroChar, nineChar + 1 ) );
            return result;

        }
        else if( number >= 10 && number < 36 )
        {
            result = ( char ) ( getRandomInt( AChar, ZChar + 1 ) );
            return result;
        }
        else if( number >= 36 && number < 62 )
        {
            result =  ( char ) ( getRandomInt( aChar, zChar + 1 ) );
            return result;
        }
        else
        {
            return 0;
        }
    }

    /**
     * 
     * @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();
    }
    
    /**
     *     
     * @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();
    }
}

分享到:
评论

相关推荐

    Java常用函数大全

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

    java中随机函数的实现

    ### Java中随机函数的实现 在Java编程语言中,生成随机数是一项常见需求,尤其是在模拟、游戏开发或数据处理等领域。本文将详细介绍两种常见的生成随机数的方法:利用`Math.random()`函数以及使用`java.util.Random...

    java常用函数.txt

    该方法生成一个包含随机整数的`HashMap`,其中键是连续整数,值是从指定范围内的随机整数。具体实现为: - 参数: - `start int`:随机数的起始值。 - `end int`:随机数的结束值。 - `num int`:要生成的随机数...

    Java math 常用函数

    ### Java Math类常用函数详解 在Java编程语言中,`Math`类提供了丰富的数学运算功能,包括基本的算术操作、对数计算、指数运算、三角函数等。这些方法可以帮助开发者轻松实现各种复杂的数学计算任务。下面将详细...

    java中随机函数的使用.doc

    Java 中随机函数的使用 Java 中随机函数的使用是指在 Java 编程语言中生成随机数的方法和技术。随机函数的使用在各种编程领域中都有着广泛的应用,如游戏开发、数据分析、模拟仿真等。 一、Java 中随机函数的类型 ...

    java常用函数2java常用函数2.doc

    本文档详细介绍了Java中一些常用的函数,这些函数覆盖了日期格式转换、数学运算、十六进制显示、数据库操作及线程控制等多个方面,是Java开发者在日常编程工作中不可或缺的工具。 首先,日期格式转换函数dateToStr...

    JAVA源码利用随机函数抽取幸运数字JAVA源码利用随机函数抽取幸运数字

    JAVA源码利用随机函数抽取幸运数字JAVA源码利用随机函数抽取幸运数字

    java 常用的函数和方法

    ### Java常用函数与方法详解 在Java编程语言中,熟练掌握一些常用的函数和方法对于提高开发效率至关重要。本文将对给定代码中的几个典型方法进行详细介绍,并解释它们的应用场景及实现原理。 #### 1. 日期转换为...

    java开发技术调用rendom函数,随机生成32位不重复的字符

    "Java开发技术调用Random函数,随机生成32位不重复的字符" 在Java开发技术中,生成随机数是非常常见的需求。例如,在注册用户账户时,需要生成一个随机的密码。在游戏开发中,需要生成随机数来决定游戏的结果。在...

    java常见函数实验

    Java的`java.util.Random`类可以生成随机数,`nextInt(int bound)`方法用于生成指定范围内的随机整数。实验要求生成5个[5, 18)之间的随机数,可以使用`ArrayList`或`LinkedList`来存储这些数。`List`接口提供了添加...

    java随机点名系统

    接下来,点名系统的随机性是通过Java的Math.random()函数实现的。这个函数返回一个0.0到1.0之间的随机浮点数,开发者通常会将其转换为整数,然后根据名单长度进行索引,以选择一个随机的名字。例如: ```java ...

    java源码资源利用随机函数抽取幸运数字

    java源码资源利用随机函数抽取幸运数字提取方式是百度网盘分享地址

    Java随机产生人名

    这是一个通过随机数产生人名的函数,姓从百家姓中随机抽取,名在常用名中抽取

    小而全的Java工具类库,使Java拥有函数式语言般的优雅

    这个库以其小而全的特点,深受开发者喜爱,它将许多常用的函数封装在一起,使得Java代码变得更加简洁、优雅,从而提升了开发效率。 Hutool库覆盖了众多功能模块,包括但不限于以下几个方面: 1. **日期和时间操作*...

    学习JAVA数学函数大全.pdf

    Java中的随机数函数主要包括random等函数,这些函数用于生成伪随机数。例如,Math.random()函数返回0和1之间的伪随机数。 七、Math属性 Java中的Math属性主要包括PI、E、LN2、LN10、LOG2E和LOG10E等,这些属性用于...

    用Java编写的随即组卷程序

    此为一个Java的随机组卷程序课程设计,内有完整程序和论文,实现的功能有: 1、卷子内容可以任意专业内容。四项单选题。 2. 数据源为50题,随机选择30题。 3. 要求每套题生成后,要方便打印 4. 使用外部数据。 5. ...

    Java swing画随机圆

    - `java.awt.Color`类:表示颜色,可以通过构造函数传入RGB值创建颜色对象。 - `random.nextInt(256)`:生成0到255之间的随机整数,可以用来创建随机RGB颜色。 程序实现的大致流程如下: 1. 创建`JFrame`对象并...

    java源码:利用随机函数抽取幸运数字.zip

    这个压缩包“java源码:利用随机函数抽取幸运数字.zip”显然包含了实现这一功能的源代码。让我们深入探讨一下如何在Java中生成随机数,以及如何构建一个抽奖系统。 首先,Java提供了`java.util.Random`类来生成...

    字节跳动sliver 采集Java函数栈实现.zip

    《字节跳动Sliver:Java函数栈采集技术解析》 在现代软件开发中,尤其是大规模分布式系统中,性能监控和故障排查是至关重要的环节。字节跳动作为一家技术驱动的公司,其内部开发的Sliver工具在解决这类问题上发挥了...

Global site tag (gtag.js) - Google Analytics