1. 程式人生 > 其它 >Java隨機生成6位字串

Java隨機生成6位字串

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)方法是是前閉後開區間。