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();
  }
 
}

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

声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。