摘要:原本的代碼當(dāng)中,很多地方都有產(chǎn)生隨機(jī)數(shù)這一項(xiàng),但是都各有各的寫法,十分不統(tǒng)一。想了想還是統(tǒng)一寫個(gè)隨機(jī)數(shù)工具類來(lái)解決,也方便后期的調(diào)用。
事件起因
最近大部分精力都投入到公司系統(tǒng)的重構(gòu)上,經(jīng)歷了幾波人之手的代碼,改起來(lái)真是苦不堪言。
原本的代碼當(dāng)中,很多地方都有產(chǎn)生隨機(jī)數(shù)這一項(xiàng),但是都各有各的寫法,十分不統(tǒng)一。
想了想還是統(tǒng)一寫個(gè)隨機(jī)數(shù)工具類來(lái)解決,也方便后期的調(diào)用。
/** * 隨機(jī)數(shù)工具類 * Created by zhh on 2017/08/01. */ public class RandomUtils { /** * 生成指定區(qū)間隨機(jī)數(shù) (min, max) * @param min 區(qū)間最小值(不包含) * @param max 區(qū)間最大值(不包含) * @return */ public static int genNum(int min, int max) { if (min >= max - 1) { // 自行異常處理, 此時(shí)簡(jiǎn)單返回0 return 0; } Random random = new Random(); return random.nextInt(max - min - 1) + min + 1; } /** * 生成指定區(qū)間隨機(jī)數(shù) [min, max) * @param min 區(qū)間最小值(包含) * @param max 區(qū)間最大值(不包含) * @return */ public static int genNumIncludeMin(int min, int max) { if (min >= max) { // 自行異常處理, 此時(shí)簡(jiǎn)單返回0 return 0; } Random random = new Random(); return random.nextInt(max - min) + min; } /** * 生成指定區(qū)間隨機(jī)數(shù) (min, max] * @param min 區(qū)間最小值(不包含) * @param max 區(qū)間最大值(包含) * @return */ public static int genNumIncludeMax(int min, int max) { return genNumIncludeMin(min, max) + 1; } /** * 生成指定區(qū)間隨機(jī)數(shù) [min, max] * @param min 區(qū)間最小值(包含) * @param max 區(qū)間最大值(包含) * @return */ public static int genNumIncludeMinAndMax(int min, int max) { if (min >= max + 1) { // 自行異常處理, 此時(shí)簡(jiǎn)單返回0 return 0; } Random random = new Random(); return random.nextInt(max - min + 1) + min; } /** * 生成指定長(zhǎng)度隨機(jī)數(shù) * @param len 指定長(zhǎng)度 * @return */ public static int genNumByLen(int len) { if (len < 1 || len > 9) { // 自行異常處理, 此時(shí)簡(jiǎn)單返回0 return 0; } return Integer.valueOf(genNumStrByLen(len)); } /** * 生成指定長(zhǎng)度隨機(jī)數(shù) * @param len 指定長(zhǎng)度 * @return */ public static String genNumStrByLen(int len) { if (len < 1) { // 自行異常處理, 此時(shí)簡(jiǎn)單返回"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(); } }代碼用例
每個(gè)方法對(duì)應(yīng)我都寫了注釋,所以這里就不再過(guò)多解釋了。只是注明的異常處理的地方需要自行多帶帶拋異?;蛘咂渌幚?。
代碼用例如下(各行后所帶注釋為對(duì)應(yīng)的返回結(jié)果):
public static void main(String[] args) { System.out.println(genNum(2, 4)); // 3 System.out.println(genNumIncludeMin(2, 4)); // 2,3中隨機(jī)一個(gè)數(shù) System.out.println(genNumIncludeMax(2, 4)); // 3,4中隨機(jī)一個(gè)數(shù) System.out.println(genNumIncludeMinAndMax(2, 4)); // 2,3,4中隨機(jī)一個(gè)數(shù) System.out.println(genNumByLen(3)); // 100至999中隨機(jī)一個(gè)數(shù), 返回結(jié)果為數(shù)字 System.out.println(genNumStrByLen(3)); // 100至999中隨機(jī)一個(gè)數(shù), 返回結(jié)果為字符串 }
目前只是這些簡(jiǎn)單的隨機(jī)數(shù)生成方法,后期若還有其他隨機(jī)數(shù)需求,我會(huì)在此繼續(xù)完善。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71396.html
一、NumberUtils工具類org.apache.commons.lang3.math.NumberUtils/1.NumberUtils.isNumber():判斷字符串是否是數(shù)字/NumberUtils.isNumber(5.96);//結(jié)果是trueNumberUtils.isNumber(s5);//結(jié)果是falseNumberUtils.isNumber(0000000000596)...
摘要:我們平時(shí)開發(fā)時(shí)經(jīng)常會(huì)遇到需要圖片驗(yàn)證碼,基礎(chǔ)的驗(yàn)證碼包括了數(shù)字字母甚至可能有漢字。下面我給出一個(gè)簡(jiǎn)單的工具類。驗(yàn)證碼生成器圖片的寬度。 我們平時(shí)開發(fā)時(shí)經(jīng)常會(huì)遇到需要圖片驗(yàn)證碼,基礎(chǔ)的驗(yàn)證碼包括了數(shù)字、字母、甚至可能有漢字。下面我給出一個(gè)簡(jiǎn)單的工具類。 package com..ankang.tony.util; import java.awt.Color; import java....
摘要:如果我們給出了構(gòu)造方法,系統(tǒng)將不再提供默認(rèn)的無(wú)參構(gòu)造方法。概念方便在沒(méi)有創(chuàng)建對(duì)象的情況下來(lái)進(jìn)行調(diào)用方法變量。因?yàn)樗某蓡T全部是靜態(tài)的所以私有了構(gòu)造方法獲取隨機(jī)數(shù)的方法返回帶正號(hào)的值,該值大于等于 1.構(gòu)造方法Constructor概述和格式(掌握) A:構(gòu)造方法概述和作用 給對(duì)象的數(shù)據(jù)(屬性)進(jìn)行初始化 B:構(gòu)造方法格式特點(diǎn) a:方法名與類名相同(大小寫也要與類名一致) b:...
摘要:接下來(lái),作者從密碼算法的誤用著手,針對(duì)一些常量,改進(jìn)了靜態(tài)分析工具。具體來(lái)說(shuō),就是在的基礎(chǔ)上做了動(dòng)態(tài)分析方法和靜態(tài)分析方法相結(jié)合的策略,在線記錄文件,離線檢測(cè)分析,使得整個(gè)工具更加完善。 ...
摘要:類提供方法和方法來(lái)通知系統(tǒng)進(jìn)行垃圾回收清理系統(tǒng)資源,并提供了和方法來(lái)加載文件和動(dòng)態(tài)鏈接庫(kù)。返回按照標(biāo)準(zhǔn)的規(guī)定,對(duì)兩個(gè)參數(shù)進(jìn)行余數(shù)運(yùn)算。 與用戶互動(dòng) 運(yùn)行Java程序的參數(shù) //Java程序入口:main()方法 public static void main(String[] args){...} public修飾符:Java類由JVM調(diào)用,為了讓JVM可以自由調(diào)用這個(gè)main()方...
閱讀 3461·2019-08-30 10:54
閱讀 3157·2019-08-29 16:38
閱讀 2180·2019-08-26 14:06
閱讀 1520·2019-08-23 15:39
閱讀 3043·2019-08-23 15:37
閱讀 2889·2019-08-23 13:50
閱讀 3195·2019-08-22 17:14
閱讀 2388·2019-08-22 15:44