Java随机数
在實際開發(fā)中產生隨機數的使用是很普遍的,所以在程序中進行產生隨機數操作很重要。在Java中主要提供兩種方式產生隨機數,分別為調用Math類的random()方法和Random類提供的產生各種數據類型隨機數的方法。
1、Math.random()方法
在Math類中存在一個random()方法,用于產生隨機數字,這個方法默認生成大于等于0.0小于1.0的double型隨機數,即0<=Math.random()<1.0,雖然Math.random()方法只可以產生0~1之間的double型數字,其實只要在Math.random()語句上稍加處理,就可以使用這個方法產生任意范圍的隨機數。
公式:(數據類型)(最小值+Math.random()*(最大值-最小值+1))
上述公式為產生的隨機數,范圍包含最小值與最大值。
1.1 生成隨機整數
/*** 生成隨機整數(包含起始與終止范圍)* * @author pan_junbiao* @param num1 起始范圍參數* @param num2 終止范圍參數* @return 隨機整數*/ public static int GetRandomNum(int num1, int num2) {int result = (int) (num1 + Math.random() * (num2 - num1 + 1));return result; }public static void main(String args[]) {// 生成100至999的隨機整數System.out.println("任意一個100值999的整數:" + GetRandomNum(100, 999)); }1.2 生成隨機字符
/*** 生成隨機字符(包含起始與終止范圍)* * @author pan_junbiao* @param char1 起始范圍參數* @param char2 終止范圍參數* @return 隨機字符*/ public static char GetRandomChar(char char1, char char2) {char result = (char) (char1 + Math.random() * (char2 - char1 + 1));return result; }public static void main(String args[]) {// 獲取a~z之間的隨機字符System.out.println("任意小寫字符:" + GetRandomChar('a', 'z'));// 獲取A~Z之間的隨機字符System.out.println("任意大寫字符:" + GetRandomChar('A', 'Z'));// 獲取0~9之間的隨機字符System.out.println("0到9任意數字字符:" + GetRandomChar('0', '9')); }執(zhí)行結果:
?
2、Random類
除了Math類中的random()方法可以獲取隨機數之外,在Java中還提供了一種可以獲取隨機數的方式,那就是java.util.Random類??梢酝ㄟ^實例化一個Random對象創(chuàng)建一個隨機數生成器。
語法如下:
Random r=new Random();
其中,r是指Random對象。
在Random類中提供了獲取各種數據類型隨機數的方法,下面舉例幾個常用的方法。
| public int nextInt() | 返回一個隨機整數。 | 
| public int nextInt(itn) | 返回大于等于0且小于n的隨機整數。 | 
| public long nextLong() | 返回一個隨機長整型值。 | 
| public boolean nextBoolean() | 返回一個隨機布爾型值。 | 
| public float nextFloat() | 返回一個隨機浮點型值。 | 
| public double nextDouble() | 返回一個隨機雙精度型值。 | 
| public double nextGaussian() | 返回一個概率密度為高斯分布的雙精度值。 | 
2.1 生成各種類型的隨機數
【示例】使用Random對象生成各種類型的隨機數,并輸出結果。
import java.util.Random;/*** 使用Random對象生成各種類型的隨機數* @author pan_junbiao*/ public class RandomTest {public static void main(String args[]){// 實例化一個Random類Random r = new Random();// 隨機產生一個整數System.out.println("隨機產生一個整數:" + r.nextInt());// 隨機產生一個大于等于0且小于10的整數System.out.println("隨機產生一個大于等于0且小于10的整數:" + r.nextInt(10));// 隨機產生一個布爾類型的值System.out.println("隨機產生一個布爾類型的值:" + r.nextBoolean());// 隨機產生一個雙精度型的值System.out.println("隨機產生一個雙精度型的值:" + r.nextDouble());// 隨機產生一個浮點型的值System.out.println("隨機產生一個浮點型的值:" + r.nextFloat());// 隨機產生一個概率密度為高斯分布的雙精度值System.out.println("隨機產生一個概率密度為高斯分布的雙精度值:" + r.nextGaussian());} }運行結果:
2.2?生成隨機字符串
【示例】使用Random對象隨機生成字符串。
import java.util.Random;/*** 使用Random對象隨機生成字符串* @author pan_junbiao**/ public class RandomString {public static void main(String[] args){System.out.println("隨機生成6位數的字符串:" + getRandomString(6));System.out.println("隨機生成8位數的字符串:" + getRandomString(8));System.out.println("隨機生成10位數的字符串:" + getRandomString(10));}/*** 隨機生成字符串* @param length 隨機字符串長度*/public static String getRandomString(int length){String base = "abcdefghijklmnopqrstuvwxyz0123456789";Random random = new Random();StringBuffer sb = new StringBuffer();for(int i=0; i< length; i++){int number = random.nextInt(base.length());sb.append(base.charAt(number));}return sb.toString();} }執(zhí)行結果:
總結
 
                            
                        - 上一篇: 什么是句柄(经典)
- 下一篇: 网络编程_手写聊天室_群聊过渡板
