這篇文章主要介紹“Java隨機數(shù)怎么應用”,在日常操作中,相信很多人在Java隨機數(shù)怎么應用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java隨機數(shù)怎么應用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)鐘山免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。
Java隨機數(shù)的測試
通過一個例子說明上面的用法
import java.util.Random; /** * Java隨機數(shù)測試 * User: leizhimin * Date: 2008-11-19 17:52:50 */ public class TestRandomNum { public static void main(String[] args) { randomTest(); testNoSeed(); testSeed1(); testSeed2(); } public static void randomTest() { System.out.println("--------------test()--------------"); //返回以毫秒為單位的當前時間。 long r1 = System.currentTimeMillis(); //返回帶正號的 double 值,大于或等于 0.0,小于 1.0。 double r2 = Math.random(); //通過Random類來獲取下一個隨機的整數(shù) int r3 = new Random().nextInt(); System.out.println("r1 = " + r1); System.out.println("r3 = " + r2); System.out.println("r2 = " + r3); } public static void testNoSeed() { System.out.println("--------------testNoSeed()--------------"); //創(chuàng)建不帶種子的測試Random對象 Random random = new Random(); for (int i = 0; i < 3; i++) { System.out.println(random.nextInt()); } } public static void testSeed1() { System.out.println("--------------testSeed1()--------------"); //創(chuàng)建帶種子的測試Random對象 Random random = new Random(555L); for (int i = 0; i < 3; i++) { System.out.println(random.nextInt()); } } public static void testSeed2() { System.out.println("--------------testSeed2()--------------"); //創(chuàng)建帶種子的測試Random對象 Random random = new Random(); random.setSeed(555L); for (int i = 0; i < 3; i++) { System.out.println(random.nextInt()); } } }
運行結果:
--------------test()-------------- r1 = 1227108626582 r3 = 0.5324887850155043 r2 = -368083737 --------------testNoSeed()-------------- 809503475 1585541532 -645134204 --------------testSeed1()-------------- -1367481220 292886146 -1462441651 --------------testSeed2()-------------- -1367481220 292886146 -1462441651 Process finished with exit code 0
通過testSeed1()與testSeed2()方法的結果可以看到,兩個打印結果相同,因為他們種子相同,再運行一次,結果還是一樣的,這就是帶種子隨機數(shù)的特性。而不帶種子的,每次運行結果都是隨機的。
Java隨機數(shù)的綜合應用
下面通過最近寫的一個隨機數(shù)工具類來展示用法:
import java.util.Random; /** * 隨機數(shù)、隨即字符串工具 * User: leizhimin * Date: 2008-11-19 9:43:09 */ public class RandomUtils { public static final String allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; public static final String letterChar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; public static final String numberChar = "0123456789"; /** * 返回一個定長的隨機字符串(只包含大小寫字母、數(shù)字) * * @param length 隨機字符串長度 * @return 隨機字符串 */ public static String generateString(int length) { StringBuffer sb = new StringBuffer(); Random random = new Random(); for (int i = 0; i < length; i++) { sb.append(allChar.charAt(random.nextInt(allChar.length()))); } return sb.toString(); } /** * 返回一個定長的隨機純字母字符串(只包含大小寫字母) * * @param length 隨機字符串長度 * @return 隨機字符串 */ public static String generateMixString(int length) { StringBuffer sb = new StringBuffer(); Random random = new Random(); for (int i = 0; i < length; i++) { sb.append(allChar.charAt(random.nextInt(letterChar.length()))); } return sb.toString(); } /** * 返回一個定長的隨機純大寫字母字符串(只包含大小寫字母) * * @param length 隨機字符串長度 * @return 隨機字符串 */ public static String generateLowerString(int length) { return generateMixString(length).toLowerCase(); } /** * 返回一個定長的隨機純小寫字母字符串(只包含大小寫字母) * * @param length 隨機字符串長度 * @return 隨機字符串 */ public static String generateUpperString(int length) { return generateMixString(length).toUpperCase(); } /** * 生成一個定長的純0字符串 * * @param length 字符串長度 * @return 純0字符串 */ public static String generateZeroString(int length) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { sb.append('0'); } return sb.toString(); } /** * 根據(jù)數(shù)字生成一個定長的字符串,長度不夠前面補0 * * @param num 數(shù)字 * @param fixdlenth 字符串長度 * @return 定長的字符串 */ public static String toFixdLengthString(long num, int fixdlenth) { StringBuffer sb = new StringBuffer(); String strNum = String.valueOf(num); if (fixdlenth - strNum.length() >= 0) { sb.append(generateZeroString(fixdlenth - strNum.length())); } else { throw new RuntimeException("將數(shù)字" + num + "轉化為長度為" + fixdlenth + "的字符串發(fā)生異 常!"); } sb.append(strNum); return sb.toString(); } /** * 根據(jù)數(shù)字生成一個定長的字符串,長度不夠前面補0 * * @param num 數(shù)字 * @param fixdlenth 字符串長度 * @return 定長的字符串 */ public static String toFixdLengthString(int num, int fixdlenth) { StringBuffer sb = new StringBuffer(); String strNum = String.valueOf(num); if (fixdlenth - strNum.length() >= 0) { sb.append(generateZeroString(fixdlenth - strNum.length())); } else { throw new RuntimeException("將數(shù)字" + num + "轉化為長度為" + fixdlenth + "的字符串發(fā)生異 常!"); } sb.append(strNum); return sb.toString(); } public static void main(String[] args) { System.out.println(generateString(15)); System.out.println(generateMixString(15)); System.out.println(generateLowerString(15)); System.out.println(generateUpperString(15)); System.out.println(generateZeroString(15)); System.out.println(toFixdLengthString(123, 15)); System.out.println(toFixdLengthString(123L, 15)); } }
運行結果:
vWMBPiNbzfGCpHG 23hyraHdJkKPwMv tigowetbwkm1nde BPZ1KNEJPHB115N 000000000000000 000000000000123 000000000000123 Process finished with exit code 0
到此,關于“Java隨機數(shù)怎么應用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站標題:Java隨機數(shù)怎么應用
網(wǎng)頁鏈接:http://sd-ha.com/article0/iedhoo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站收錄、建站公司、云服務器、標簽優(yōu)化、品牌網(wǎng)站建設
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)