Java隨機生成6位字符串
import java.util.Random;
/**
* @author wangan
*/
public class SignUtil {
private static final String BASIC = "123456789qwertyuiopasdfghjklzxcvbnm";
public static String random(){
char[] basicArray = BASIC.toCharArray();
Random random = new Random();
char[] result = new char[6];
for (int i = 0; i < result.length; i++) {
int index = random.nextInt(100) % (basicArray.length);
result[i] = basicArray[index];
}
return new String(result);
}
}
java.util.Random的使用
java.util.Random常用方法
+構造函數
Random()
創建一個新的隨機數生成器。
Random(long seed)
使用單個long種子創建新的隨機數生成器。
+方法
boolean nextBoolean()
返回一個偽boolean隨機數。
void nextBytes(byte[] bytes)
生成隨機字節並將它們放入用戶提供的字節數組中。
double nextDouble()
返回下一個偽double,每個值在[0,1)之間。
float nextFloat()
返回下一個偽float,每個值在[0,1)之間。
double nextGaussian()
返回下一個偽隨機高斯/正態分布double值,產生的數字是符合標准正態分布的。
int nextInt()
返回下一個偽int隨機數
int nextInt(int bound)
返回int隨機數,每個值在[0,bound)之間。
long nextLong()
返回下一個偽long隨機數
void setSeed(long seed)
使用單個long種子設置此隨機數生成器的種子。
DoubleStream doubles()
創建一個無窮大的double類型的數字流,每個值在[0,1)之間。
DoubleStream doubles(double randomNumberOrigin, double randomNumberBound)
創建一個無窮大的double類型的數字流,每個值在[randomNumberOrigin,randomNumberBound)之間。。
DoubleStream doubles(long streamSize)
返回產生給定streamSize數量的偽隨機double值的流,每個值在[0,1)之間。
DoubleStream doubles(long streamSize, double randomNumberOrigin, double randomNumberBound)
返回產生給定streamSize數量的偽隨機double值的流,每個偽隨機值在[randomNumberOrigin,randomNumberBound)之間。
IntStream ints()
創建一個無窮大的偽隨機int值流。
IntStream ints(int randomNumberOrigin, int randomNumberBound)
創建一個無窮大的偽隨機int值流,每個值在[randomNumberOrigin,randomNumberBound)之間。
IntStream ints(long streamSize)
返回產生給定streamSize數量的偽隨機int值的流。
IntStream ints(long streamSize, int randomNumberOrigin, int randomNumberBound)
返回產生給定streamSize數量的偽隨機int值的流,每個偽隨機值在[randomNumberOrigin,randomNumberBound)之間。
LongStream longs()
創建一個無窮大的偽隨機long值流。
LongStream longs(long streamSize)
返回產生給定streamSize數量的偽隨機long值的流。
LongStream longs(long randomNumberOrigin, long randomNumberBound)
創建一個無窮大的偽隨機long值流,每個值在[randomNumberOrigin,randomNumberBound)之間。
LongStream longs(long streamSize, long randomNumberOrigin, long randomNumberBound)
返回產生給定streamSize偽隨機數的流long,每個偽隨機在[randomNumberOrigin,randomNumberBound)之間。
注意:int nextInt(int bound)方法是是前閉后開區間。
生成指定區間的整形隨機數
int randNumber =rand.nextInt(MAX - MIN + 1) + MIN; // randNumber 將被賦值為一個 MIN 和 MAX 范圍內的隨機數
Random的那些坑,如下結果永遠是一個值
for(int i =0 ;i<50;i++){
Random random = new Random(10000);
System.out.println("-----------"+random.nextInt(10000) );
}
所以請在循環之前實例化一個random對象,如下:
Random random = new Random(10000);
for(int i =0 ;i<50;i++){
System.out.println("-----------"+random.nextInt(10000) );
}