Java隨機生成6位字串
阿新 • • 發佈:2021-08-13
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)之間。
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) ); }
注意:int nextInt(int bound)方法是是前閉後開區間。