Java实现的一个编号生成器工具类——5种方法
时间:2022-04-29
本文章向大家介绍Java实现的一个编号生成器工具类——5种方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
这个类可以直接用在项目开发中,直接上代码:
import java.io.Serializable;
import java.util.Random;
import java.util.UUID;
/**
* 编号 生成器
* @author Java自学通
*
*/
public final class MyIncrementGenerator {
private MyIncrementGenerator() {
}
/**
* 得到32位唯一的UUID
*
* @return 唯一编号
*/
public static Serializable uuid() {
UUID uid = UUID.randomUUID();
return uid.toString().replace("-", "");
}
/**
* 根据长度得到唯一编号
*
* @param length
* 长度
* @return 唯一编号
*/
public static Serializable uuid(int length) {
UUID uid = UUID.randomUUID();
String temp = uid.toString().replace("-", "");
if (length > 0 && length < temp.length()) {
temp = temp.substring(temp.length() - length);
}
return temp;
}
/**
* 根据长度得到随机字符串,一位字母一位数字
*
* @param length
* 长度
* @return 字符串
*/
public static String unique(int length) {
StringBuilder str = new StringBuilder();
for (int i = 0; i < length; i++) {
if (i % 2 == 0) {
str.append(getRandom(97, 122));
} else {
str.append(getRandom(48, 57));
}
}
return str.toString();
}
/**
* 得到纯数字编号
*
* @param length
* 长度
* @return
*/
public static String number(int length) {
StringBuilder str = new StringBuilder();
for (int i = 0; i < length; i++) {
if (i == 0)
str.append(getRandom(49, 57));
else
str.append(getRandom(48, 57));
}
return str.toString();
}
/**
* 根据开始和结束大小得到单一字符
*
* @param begin
* 开始值
* @param end
* 结束值
* @return 单一字符
*/
private static String getRandom(int begin, int end) {
String str = "";
Random rd = new Random();
int number = 0;
while (str.length() == 0) {
number = rd.nextInt(end + 1);
if (number >= begin && number <= end)
str = String.valueOf((char) number);
}
return str;
}
}
- HTML技术简介
- 记一次非常愉悦的 Python 使用经历
- Jquery 触发器之treigger()方法简介
- 如何节省 1TB 图片带宽?解密极致图像压缩
- Redis快速入门
- 王者荣耀未来新版本的环境优化计划,人工智能技术将引入
- Jquery遍历数组之$.inArray()方法介绍
- [原创图解]Win2003证书服务配置/客户端(服务端)证书申请/IIS站点SSL设置
- JavaScript之firstChild属性、lastChild属性、nodeValue属性学习
- JavaScript之获取和设置元素属性
- JavaScript之childNodes属性、nodeType属性学习
- JavaScript之怎样获取元素节点
- JavaScript之对象学习
- 快速入门系列--MVC--07与HTML5移动开发的结合
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 线上问题排查思路、工具小结
- 返回顶部案例
- 机器视觉 | 光源照明综述(详细版)
- 网页轮播图案例
- Angular单元测试ComponentFixture的实例化过程明细
- 如何在Chrome调试器里检查嵌套Observable对象
- Angular 指令ngTemplateOutlet的运行原理单步调试
- 跳出源码地狱,Spring巧用三级缓存解决循环依赖-原理篇
- Angular NgTemplateOutlet的一个例子
- 手把手教你自制基于TencentOS Tiny的智能甲醛监测仪
- ASP.NET Core 使用 AutoFac 注入 DbContext
- Python爬虫练习:爬取800多所大学学校排名、星级等
- Python爬取股票信息,并实现可视化数据
- Python爬虫练习:爬取素材网站数据
- 25行代码带你爬取4399小游戏数据,看下童年的游戏是否还在