Java自制简单RandomUtils随机数工具类
来源:互联网 发布:金知云林秀晶 编辑:程序博客网 时间:2024/06/11 18:26
最近忙着重构公司的系统,之前的设计模式学习什么的也先放放了。正好借着这次重构造些轮子,锻炼下自己。
系统中很多地方都有产生随机数这一块,想了想还是统一的写个工具类来解决的好,也方便其他人调用,自己写的代码如下(还有很多需要改进的地方):
/** * 随机数工具类 * Created by zhh on 2017/08/01. */public class RandomUtils { /** * 生成指定区间随机数 (min, max) * @param min 区间最小值(不包含) * @param max 区间最大值(不包含) * @return */ public static int genNum(int min, int max) { if (min >= max - 1) { // 自行异常处理, 此时简单返回0 return 0; } Random random = new Random(); return random.nextInt(max - min - 1) + min + 1; } /** * 生成指定区间随机数 [min, max) * @param min 区间最小值(包含) * @param max 区间最大值(不包含) * @return */ public static int genNumIncludeMin(int min, int max) { if (min >= max) { // 自行异常处理, 此时简单返回0 return 0; } Random random = new Random(); return random.nextInt(max - min) + min; } /** * 生成指定区间随机数 (min, max] * @param min 区间最小值(不包含) * @param max 区间最大值(包含) * @return */ public static int genNumIncludeMax(int min, int max) { return genNumIncludeMin(min, max) + 1; } /** * 生成指定区间随机数 [min, max] * @param min 区间最小值(包含) * @param max 区间最大值(包含) * @return */ public static int genNumIncludeMinAndMax(int min, int max) { if (min >= max + 1) { // 自行异常处理, 此时简单返回0 return 0; } Random random = new Random(); return random.nextInt(max - min + 1) + min; } /** * 生成指定长度随机数 * @param len 指定长度 * @return */ public static int genNumByLen(int len) { if (len < 1 || len > 9) { // 自行异常处理, 此时简单返回0 return 0; } return Integer.valueOf(genNumStrByLen(len)); } /** * 生成指定长度随机数 * @param len 指定长度 * @return */ public static String genNumStrByLen(int len) { if (len < 1) { // 自行异常处理, 此时简单返回"0" return "0"; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < len; i++) { if (i == 0) { sb.append(genNumIncludeMax(0, 9)); } else { sb.append(genNumIncludeMinAndMax(0, 9)); } } return sb.toString(); }}
每个方法对应我都写了注释,所以这里就不再过多解释了。只是注明的异常处理的地方需要自行单独抛异常或者其他处理。
下面写个主方法测试为例:
public static void main(String[] args) { System.out.println(genNum(2, 4)); // [3] System.out.println(genNumIncludeMin(2, 4)); // [2, 3] System.out.println(genNumIncludeMax(2, 4)); // [3, 4] System.out.println(genNumIncludeMinAndMax(2, 4)); // [2, 3 ,4] System.out.println(genNumByLen(3)); // [100 ~ 999] System.out.println(genNumStrByLen(3)); // [100 ~ 999] }
目前只是这些简单的随机数生成方法,后期若还有其他随机数需求,我会在此继续完善。
阅读全文
0 0
- Java自制简单RandomUtils随机数工具类
- RandomUtils 产生随机数的工具类
- 随机数工具类 org.apache.commons.lang.math.RandomUtils
- NumberUtils、ArrayUtils和RandomUtils工具类用法
- NumberUtils、ArrayUtils和RandomUtils工具类用法
- NumberUtils、ArrayUtils和RandomUtils工具类用法
- NumberUtils、ArrayUtils和RandomUtils工具类用法
- NumberUtils、ArrayUtils和RandomUtils工具类用法
- NumberUtils、ArrayUtils和RandomUtils工具类用法
- NumberUtils、ArrayUtils和RandomUtils工具类用法
- NumberUtils、ArrayUtils和RandomUtils工具类用法
- Java数组总结之自制简单数组工具类
- java基础--17 自定义的RandomUtils类--用于产生各种随机串的工具类
- Java高级个人笔记(NumberUtils、ArrayUtils和RandomUtils工具类用法)
- Android工具类之StringUtils,RandomUtils,SerializeUtils,JSONUtils
- 自制java构建工具
- Java随机数工具类总结
- java 随机数产生工具类
- Oracle-02
- 多态&多态的对象模型
- spring配置数据源的四种方式
- 多线程详细讲解
- Oracle PL/SQL开发基础(第二十五弹:操纵游标数据)
- Java自制简单RandomUtils随机数工具类
- hdu1030(数学题)
- 6. vue.js-饿了吗全套-项目运行.
- CentOS 7 用yum安装 MySQL
- STM32 IAP 设计实例 (二)
- 二十七天
- 浅谈Vue项目实战(项目结构了解)
- rxjs简单入门
- Lintcode97 Maximum Depth Of BinaryTree solution 题解