您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java隨機數怎么應用”,在日常操作中,相信很多人在Java隨機數怎么應用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java隨機數怎么應用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Java隨機數的測試
通過一個例子說明上面的用法
import java.util.Random; /** * Java隨機數測試 * 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類來獲取下一個隨機的整數 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()--------------"); //創建不帶種子的測試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()--------------"); //創建帶種子的測試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()--------------"); //創建帶種子的測試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()方法的結果可以看到,兩個打印結果相同,因為他們種子相同,再運行一次,結果還是一樣的,這就是帶種子隨機數的特性。而不帶種子的,每次運行結果都是隨機的。
Java隨機數的綜合應用
下面通過最近寫的一個隨機數工具類來展示用法:
import java.util.Random; /** * 隨機數、隨即字符串工具 * 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"; /** * 返回一個定長的隨機字符串(只包含大小寫字母、數字) * * @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(); } /** * 根據數字生成一個定長的字符串,長度不夠前面補0 * * @param num 數字 * @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("將數字" + num + "轉化為長度為" + fixdlenth + "的字符串發生異 常!"); } sb.append(strNum); return sb.toString(); } /** * 根據數字生成一個定長的字符串,長度不夠前面補0 * * @param num 數字 * @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("將數字" + num + "轉化為長度為" + fixdlenth + "的字符串發生異 常!"); } 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隨機數怎么應用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。