开发者博客: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开发中中经常使用的Java工具类分享,工作中用得上,直接拿来使用,不用重复造轮子。
RandomUtil randomUtil = new RandomUtil(); getRandomNumFromOneToNum(10, randomUtil::nextInt); getRandomNumFromAToB(5, 15, randomUtil::nextInt); getRandomNumFromArray(new int[]{1, 2, 3, 4, 5}, ...
(RandomUtil.java)随机函数处理类 (OperationUtil.java)Collection工具包类(CollectionUtil.java)等等,如果下载者觉得使用方面的话,在下十分感谢,申明:代码没有经过十分严格测试,纯属自己爱好和方便编写...
Java8中的java.util.Random类 文章代码,不多解释啦,不需要你安装其它的jar包。
String captchaText = RandomUtil.randomStr(4); // 随机生成验证码文本 session.setAttribute("captcha", captchaText); // 存储验证码到session return captchaBytes; } @PostMapping("/checkCaptcha") ...
8. **其他工具**:还有如`RandomUtil`用于生成随机数,`StringUtil`处理字符串,`RegexUtil`进行正则表达式匹配,`Convert`进行类型转换,以及`CodeUtil`处理编码问题等。 Hutool的设计理念是“简单易用”,它的每...
JCT可能会包含一个RandomUtil类,提供安全的随机数生成。 8. **加密解密接口**:为了实现灵活性,JCT可能会定义一套统一的加密解密接口,允许开发者自定义加密算法或适配第三方库。 9. **代码示例和文档**:源码包...
在示例代码中,`RandomUtil.randomNumbers(5)` 方法生成了一个5位的随机数字验证码。您可以根据需求调整验证码的长度和字符类型,例如包含字母和数字的混合验证码。 接下来,验证码的存储至关重要。在这个例子中,...
7. **随机数与验证码**:RandomUtil生成随机数,包括整数、浮点数、字符串等,而CodeUtil则可生成各种验证码,如数字、字母或组合型验证码。 8. **JSON操作**:JsonUtil提供了JSON对象的序列化和反序列化功能,支持...
代码实现中,`RandomUtil` 类包含了一个名为 `getSimple()` 的静态方法,该方法接受两个参数,一个是原始数组(num),另一个是要抽取的样本数量(k)。方法首先检查输入的合理性,然后创建一个大小为k的结果数组...
5. **RandomUtil**: 提供随机数生成的工具类,可以生成指定范围内的整数、浮点数,或者随机字符串。它可能包括了Java内置的`java.util.Random`类的扩展,或者使用了其他库如Apache Commons Lang的`RandomUtils`。 ...
除了以上模块,Hutool还包含了BeanUtil(对象操作)、JsonUtil(JSON操作)、RandomUtil(随机数生成)等工具类,涵盖了开发中的诸多方面。 通过阅读“Hutool+Wiki.pdf”,开发者可以深入了解每个工具类的使用方法...
- **随机工具**:`RandomUtil`生成随机数。 - **网络工具**:`NetUtil`处理网络相关操作,如IP地址、端口等。 - **唯一ID**:`IdUtil`生成唯一的ID。 - **压缩工具**:`ZipUtil`实现文件或目录的压缩和解压。 -...
12. 随机数生成工具类(RandomUtil):生成指定范围内的随机数,可用于模拟数据或游戏开发。 13. 代码混淆工具类(ProguardUtil):提供代码混淆的相关配置和处理,用于保护应用的源代码安全。 14. 缓存管理工具类...
9. **RandomUtil.java**: 随机数在很多场景下都很有用,这个类可能提供了生成随机数或者随机字符串的方法,如`nextInt()`、`nextDouble()`、`generateRandomString()`等。 以上就是对给定文件名称的分析,每个文件...
return RandomUtil.randomNumbers(6); } } ``` 接下来,我们需要定义一个`SmsCodeSender`接口,它将包含发送短信的抽象方法。例如: ```java public interface SmsCodeSender { boolean send(String mobile, ...
类加载工具(ClassLoaderUtil)、枚举工具(EnumUtil)、命令行工具(RuntimeUtil)、数字工具(NumberUtil)、数组工具(ArrayUtil)、随机工具(RandomUtil)、网络工具(NetUtil)和唯一ID工具(IdUtil)等提供了...
类名称 RandomUtil 类描述 数学类-随机数生成类 包描述 tools 函数描述 public static int randomInt(int a,int b) 生成a-b的随机数 public static int randomInt(int a) 返回0-a的随机数。 c) 程序效果图 五...