摘要:原本的代碼當中,很多地方都有產生隨機數這一項,但是都各有各的寫法,十分不統一。想了想還是統一寫個隨機數工具類來解決,也方便后期的調用。
事件起因
最近大部分精力都投入到公司系統的重構上,經歷了幾波人之手的代碼,改起來真是苦不堪言。
原本的代碼當中,很多地方都有產生隨機數這一項,但是都各有各的寫法,十分不統一。
想了想還是統一寫個隨機數工具類來解決,也方便后期的調用。
/** * 隨機數工具類 * 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中隨機一個數, 返回結果為字符串 }
目前只是這些簡單的隨機數生成方法,后期若還有其他隨機數需求,我會在此繼續完善。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71396.html
一、NumberUtils工具類org.apache.commons.lang3.math.NumberUtils/1.NumberUtils.isNumber():判斷字符串是否是數字/NumberUtils.isNumber(5.96);//結果是trueNumberUtils.isNumber(s5);//結果是falseNumberUtils.isNumber(0000000000596)...
摘要:我們平時開發時經常會遇到需要圖片驗證碼,基礎的驗證碼包括了數字字母甚至可能有漢字。下面我給出一個簡單的工具類。驗證碼生成器圖片的寬度。 我們平時開發時經常會遇到需要圖片驗證碼,基礎的驗證碼包括了數字、字母、甚至可能有漢字。下面我給出一個簡單的工具類。 package com..ankang.tony.util; import java.awt.Color; import java....
摘要:如果我們給出了構造方法,系統將不再提供默認的無參構造方法。概念方便在沒有創建對象的情況下來進行調用方法變量。因為它的成員全部是靜態的所以私有了構造方法獲取隨機數的方法返回帶正號的值,該值大于等于 1.構造方法Constructor概述和格式(掌握) A:構造方法概述和作用 給對象的數據(屬性)進行初始化 B:構造方法格式特點 a:方法名與類名相同(大小寫也要與類名一致) b:...
摘要:接下來,作者從密碼算法的誤用著手,針對一些常量,改進了靜態分析工具。具體來說,就是在的基礎上做了動態分析方法和靜態分析方法相結合的策略,在線記錄文件,離線檢測分析,使得整個工具更加完善。 ...
摘要:類提供方法和方法來通知系統進行垃圾回收清理系統資源,并提供了和方法來加載文件和動態鏈接庫。返回按照標準的規定,對兩個參數進行余數運算。 與用戶互動 運行Java程序的參數 //Java程序入口:main()方法 public static void main(String[] args){...} public修飾符:Java類由JVM調用,為了讓JVM可以自由調用這個main()方...
閱讀 3451·2019-08-30 10:54
閱讀 3147·2019-08-29 16:38
閱讀 2166·2019-08-26 14:06
閱讀 1512·2019-08-23 15:39
閱讀 3034·2019-08-23 15:37
閱讀 2883·2019-08-23 13:50
閱讀 3190·2019-08-22 17:14
閱讀 2375·2019-08-22 15:44