init
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
package com.fuint.utils;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.util.Calendar;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ThreadLocalRandom;
|
||||
|
||||
/**
|
||||
* 序列工具类
|
||||
*
|
||||
* Created by FSQ
|
||||
* CopyRight https://www.fuint.cn
|
||||
*/
|
||||
public class SeqUtil {
|
||||
|
||||
/**
|
||||
* 产生字符串序列(长度:32)
|
||||
*
|
||||
* @return String 32位字符串序列
|
||||
*/
|
||||
public static String getUUID() {
|
||||
String uuid = UUID.randomUUID().toString();
|
||||
return uuid.replaceAll("\\-", "").toUpperCase();
|
||||
}
|
||||
|
||||
/**
|
||||
* 产生日期序列(长度:32)
|
||||
* [yyyyMMddHHmmssSSS+15位随机数]
|
||||
*
|
||||
* @return Long
|
||||
*/
|
||||
public static BigInteger getTimeSeq() {
|
||||
String date = CommonUtil.formatDate(Calendar.getInstance().getTime(), "yyyyMMddHHmmssSSS");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(date);
|
||||
int length = 32 - sb.length();
|
||||
String randNum = getRandomNumber(length);
|
||||
sb.append(randNum);
|
||||
return new BigInteger(sb.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* 产生日期序列(长度:大于17位)
|
||||
* [yyyyMMddHHmmssSSS+15位随机数]
|
||||
*
|
||||
* @return Long
|
||||
*/
|
||||
public static String getTimeSeq(int length) {
|
||||
String date = CommonUtil.formatDate(Calendar.getInstance().getTime(), "yyyyMMddHHmmssSSS");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(date);
|
||||
length = length - sb.length();
|
||||
if (length > 0) {
|
||||
String randNum = getRandomNumber(length);
|
||||
sb.append(randNum);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据客户自定义前缀获取序列(长度:32)
|
||||
* [前缀+yyyyMMddHHmmssSSS+随机数]
|
||||
*
|
||||
* @param prefix
|
||||
* @return String
|
||||
*/
|
||||
public static String getCustSeq(String prefix) {
|
||||
String date = CommonUtil.formatDate(Calendar.getInstance().getTime(), "yyyyMMddHHmmssSSS");
|
||||
StringBuilder sb = new StringBuilder(prefix);
|
||||
sb.append(date);
|
||||
int length = 32 - sb.length();
|
||||
String randNum = getRandomNumber(length);
|
||||
sb.append(randNum);
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 产生指定长度随机字母
|
||||
*
|
||||
* @param length
|
||||
* @return String
|
||||
*/
|
||||
public static String getRandomLetter(int length) {
|
||||
String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
int rang = 26;
|
||||
ThreadLocalRandom rand = ThreadLocalRandom.current();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < length; i++) {
|
||||
sb.append(base.charAt(rand.nextInt(rang)));
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 产生指定长度随机数字
|
||||
*
|
||||
* @param length
|
||||
* @return String
|
||||
*/
|
||||
public static String getRandomNumber(int length) {
|
||||
String base = "0123456789";
|
||||
int rang = 10;
|
||||
ThreadLocalRandom rand = ThreadLocalRandom.current();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < length; i++) {
|
||||
sb.append(base.charAt(rand.nextInt(rang)));
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 产生指定区间的随机整数
|
||||
*
|
||||
* @param min
|
||||
* @param max
|
||||
* @return int
|
||||
*/
|
||||
public static int getRandomNumber(int min, int max) {
|
||||
ThreadLocalRandom rand = ThreadLocalRandom.current();
|
||||
return rand.nextInt(min, max);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user