专栏首页Java学习网Java实现的一个编号生成器工具类——5种方法

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

本文分享自微信公众号 - Java学习网(javalearns),作者:javalearns

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java实现的手工做乘法方法,给出二个字符串数字,返回相乘结果

    给定两个字符串数字,返回两数字相乘的结果字符串;如:String a="200",String b="10",要求返回"2000"。 问题分析: 解决这个问题的...

    用户1289394
  • 全栈开发工程师就是个神话

    全栈开发工程师就是个神话 “全栈开发工程师(full stack developer)”一词经常出现在企业招聘的岗位描述中。但 Hello Pretty 联合创...

    用户1289394
  • Android中Java和JavaScript交互

    Android中Java和JavaScript交互 Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是...

    用户1289394
  • 在ASP.NET MVC中如何应用多个相同类型的ValidationAttribute?

    ASP.NET MVC采用System.ComponentModel.DataAnnotations提供的元数据验证机制对Model实施验证,我们可以在Mode...

    蒋金楠
  • LeetCode 38. 报数

    报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:

    Michael阿明
  • 翻译连载 | 附录 A:Transducing(上)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇

    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 JavaScript 轻量级函数...

    iKcamp
  • LintCode-407.加一

    给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。 该数字按照大小进行排列,最大的数在列表的最前面。

    悠扬前奏
  • ASP.NET 最佳DataGrid读取单元格的值

     参考:http://blog.csdn.net/aiouwen521/article/details/8490742

    跟着阿笨一起玩NET
  • 【浅谈Chromium中的设计模式(一)】——Chromium中模块分层和进程模型

    “EP”(中文:工程生产力)是目前项目中提升研发能力的一个很重要的衡量指标。笔者重点学习了Chromium产品是如何从代码和设计层面来保证快速高效的工程生产力。...

    腾讯移动品质中心TMQ
  • SpringBoot2.x系列教程(二十一)参数分组校验

    在使用注解进行参数校验时还有这样的一个场景:同样的一个Java对象,在不同的接口中需要校验的参数不同,那么此时如果将两个接口的校验都进行校验,有可能出现误判情况...

    用户1161110

扫码关注云+社区

领取腾讯云代金券