JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写

本文介绍了Java随机数,分享给大家,也顺便做个笔记

package com.fty.util;

import java.security.SecureRandom;
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;

public class UtilId {

  /**
   * 生成16位不重复的随机数,含数字+大小写
   * @return
   */
  public static String getGUID() {
   StringBuilder uid = new StringBuilder();
    //产生16位的强随机数
    Random rd = new SecureRandom();
    for (int i = 0; i < 16; i++) {
      //产生0-2的3位随机数
      int type = rd.nextInt(3);
      switch (type){
        case 0:
          //0-9的随机数
          uid.append(rd.nextInt(10));
         /*int random = ThreadLocalRandom.current().ints(0, 10)
         .distinct().limit(1).findFirst().getAsInt();*/
          break;
        case 1:
          //ASCII在65-90之间为大写,获取大写随机
          uid.append((char)(rd.nextInt(25)+65));
          break;
        case 2:
          //ASCII在97-122之间为小写,获取小写随机
          uid.append((char)(rd.nextInt(25)+97));
          break;
        default:
          break;
      }
    }
    return uid.toString();
  }
 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写)