package com.xj.hhjk.common.util.security;

import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.xj.hhjk.common.util.StringUtil;

/**
 * 生成UUID字符串
 * 
 * @author yang_jiangping
 * 
 */
public final class UUIDUtil {
    private UUIDUtil() {

}

/**
     * 生成32位UUID 即:不包含字符-的UUID
     * 
     * @return
     * @param
     * @return String
     */
    public static String getUUID32Bits() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }

/**
     * 生成36位UUID 即:包含字符-的UUID
     * 
     * @return
     * @param
     * @return String
     */
    public static String getUUID36Bits() {
        return UUID.randomUUID().toString();
    }

/**
     * 生成指定数目的32位uuid
     * 
     * @param count
     * @return String[]
     */
    public static String[] getUUID32Bits(Integer count) {
        return getUUID(count, 32);
    }

/**
     * 生成指定数目的36位uuid
     * 
     * @param count 指定数目
     * @return String[]
     */
    public static String[] getUUID36Bits(Integer count) {
        return getUUID(count, 36);
    }

/**
     * 生成12位uuid的一部分
     * 
     * @param count 指定数目
     * @return String[]
     */
    public static String getUUID12Bits() {
        String str = getUUID32Bits();
        return str.substring(20);
    }

/**
     * 生成指定数目的指定位数的uuid
     * 
     * @param count 指定数目
     * @param bits
     * @return String[]
     */
    private static String[] getUUID(Integer count, int bits) {
        String[] uuids = new String[count];
        for (int i = 0; i < count; i++) {
            if (bits == 32) {
                uuids[i] = getUUID32Bits();
            } else if (bits == 36) {
                uuids[i] = getUUID36Bits();
            }
        }
        return uuids;
    }

public static String getCDToken() {
        Pattern pattern = Pattern.compile("1|a|l|v|o"); // 去掉空格符和换行符
        Matcher matcher = pattern.matcher(getUUID32Bits());
        return matcher.replaceAll("");

}

public static boolean checkCdToken(String token) {
        if (StringUtil.isNullOrEmpty(token))
            return false;
        Pattern pattern = Pattern.compile("1|a|l|v|o");
        return !pattern.matcher(token).find();
    }

public static void main(String[] args) {
//        for (int i = 0; i < 10; i++) {
//            System.out.println(checkCdToken("ss"));
//        }
//        System.out.println(getCDToken());
        for (int i = 0; i < 100; i++) {
            System.out.println(getUUID32Bits().toUpperCase());
        }
    }
}

java 生成UUID字符串工具类 UUIDUtil相关推荐

  1. java生成圆_java工具类-java实现 生成圆头像

    1.创建RoundHeadImgUtils工具类 package com.mrd.utils; import javax.imageio.ImageIO; import java.awt.*; imp ...

  2. java 导出mdb文件_Java中Java生成mdb文件工具类

    package com.util; /**  * Java生成mdb文件[MS Access文件]  * 1. 在ClassPath下存一个空的blank.mdb. (也就是在你的项目中包含一个空白的 ...

  3. java工具类使用逗号切割字符串_【java】分割字符串工具类,霸气 jdk自带的

    java 分割字符串,分割string,可以根据多个条件去分割.比如逗号,分号,逗号或者分号. 比如一个字符串:"abc,def;gh,ij;k;lm,no,p;qr,st"按逗号 ...

  4. java 生成水印图片工具类, MultipartFile接收上传的图片,处理成加水印之后的MultipartFile

    /*** Created by Administrator on 2018/4/26.* JAVA图片处理工具*/ public class ImageUtil {public enum positi ...

  5. java生成验证码工具类_Java生成图形验证码工具类

    生成验证码效果 validatecode.java 验证码生成类 package cn.dsna.util.images; import java.awt.color; import java.awt ...

  6. 生成token的工具类

    注意引入的依赖的版本,和工具类是否匹配,不然报错 以下token工具类,需要的依赖: <dependency><groupId>io.jsonwebtoken</grou ...

  7. Java中字符串工具类继承org.apache.commons.lang3.StringUtils类代码

    场景 转换为字节数组:是否包含字符串:替换掉HTML标签方法:替换为手机识别的HTML,去掉样式及属性,保留回车: 缩略字符串(不区分中英文字符):转换为Double类型:转换为Float类型:转换为 ...

  8. 字符串工具类,随机生成字符串

    字符串工具类,随机生成字符串 package main.java.utils;import java.util.Map; import java.util.Random;public class St ...

  9. java小白训练营2109-day05-API:API+字符串工具类+身份证解析

    文章目录 API手册 api java是否老了? 字符串工具类 常见的字符串的api 身号解析 小结 API手册 下载jdk1.5手册 注意:chm文件从网络下载后,菜单能展现点击后内容不能展现,按下 ...

最新文章

  1. RabbitMQ (一)基础概念
  2. idea窗口下方滚动条不明显设置
  3. linux查看apache端口,linux系统下Apache服务启动时80端口报错
  4. 计算机的安全设置在哪儿,电脑防火墙在哪里设置
  5. Atitit 2018 技术趋势与没落技术总结 目录 1. 2018 技术雷达 1 1.1. HOSTED IDENTITY MANAGEMENT AS A SERVICE (SaaS)身份管理
  6. GIF Movie Gear逆向实战+注册代码+补丁
  7. camera - YUV422
  8. 分布式开源调度框架TBSchedule原理与应用
  9. 微信小程序web-view的H5页面如何使用微信直播功能
  10. android的vmos虚拟机,vmospro虚拟机
  11. pycharm中新建项目出现的问题及过程(小白自学)
  12. 刨根问底,5问分析法
  13. Codeforces Round #666(Div. 2)E. Monster Invaders(DP)
  14. CALayer之anchorPoint分析
  15. 【高性能计算】为什么内存需要8字节或16字节对齐
  16. 泛微E9表单建模查询列表批量文件下载
  17. Unity运行中修改物体的颜色
  18. Day04(逻辑门学习)
  19. Hbase入门到实战-连载六(Phoenix)
  20. python操作统计excel表格,生成新excel表格

热门文章

  1. Vim 批量在行首/行尾插入相同字符
  2. sublimelinter java_程序员必备工具SublimeLinter安装使用指南
  3. Linux之编写shell脚本
  4. QT之CheckBox单项选择与多项选择
  5. linux 'pthread_create'未定义的引用,如何解决`_imp__pthread_create'的未定义引用
  6. 模型选择的方法——正则化与交叉验证
  7. 「Linux-基础」CentOS8 权限管理
  8. Python request如何做接口测试
  9. 小而巧的数字压缩算法:zigzag
  10. c语言x的n次方怎么写_C语言入门教程(三)进制与操作符