成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【Java】隨機(jī)數(shù)工具類

didikee / 3485人閱讀

摘要:原本的代碼當(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)用。

實(shí)現(xiàn)代碼
/**
 * 隨機(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

相關(guān)文章

  • Java 數(shù)字?jǐn)?shù)組機(jī)數(shù)工具 NumberUtils、ArrayUtils、RandomUtils

    一、NumberUtils工具類org.apache.commons.lang3.math.NumberUtils/1.NumberUtils.isNumber():判斷字符串是否是數(shù)字/NumberUtils.isNumber(5.96);//結(jié)果是trueNumberUtils.isNumber(s5);//結(jié)果是falseNumberUtils.isNumber(0000000000596)...

    tianhang 評(píng)論0 收藏0
  • 圖片驗(yàn)證碼的JAVA工具

    摘要:我們平時(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....

    SKYZACK 評(píng)論0 收藏0
  • Java編程基礎(chǔ)08——面向?qū)ο骭構(gòu)造方法&靜態(tài)static

    摘要:如果我們給出了構(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:...

    張巨偉 評(píng)論0 收藏0
  • 檢測(cè)工具進(jìn)階——結(jié)合靜態(tài)分析的動(dòng)態(tài)分析工具論文分享

    摘要:接下來(lái),作者從密碼算法的誤用著手,針對(duì)一些常量,改進(jìn)了靜態(tài)分析工具。具體來(lái)說(shuō),就是在的基礎(chǔ)上做了動(dòng)態(tài)分析方法和靜態(tài)分析方法相結(jié)合的策略,在線記錄文件,離線檢測(cè)分析,使得整個(gè)工具更加完善。 ...

    canger 評(píng)論0 收藏0
  • Java 基礎(chǔ)庫(kù):System、Runtime、Object、Math、日期、時(shí)間

    摘要:類提供方法和方法來(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()方...

    darcrand 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<