通过ASCII编码对照关系生成数组和英文主键,起初传入主键字符串,然后转换为byte数组,从末位开始十进制数的自增,获取ASCII编码对应的下一位字符,以及判断是否要进位,进位则循环下一位进行自增,反复循环,若不进位,则直接返回byte数组,最后byte数组转换为字符返回。
package com.nullable.tools.id;
/**
* 主键生成工具类:包含数字、大写英文,从0-9,再到A-Z进行自增
* @author null_able
*/
public class CreateIdTool {
// 最小编码,对应字符为0
private static final byte MIN_CODE = 48;
// 最大编码,对应字符为Z
private static final byte MAX_CODE = 90;
// 中间隔断结束编码,对应字符为9的下一位:冒号
private static final byte MIDDLE_END_CODE = 58;
// 中间隔断开始编码,对应字符A
private static final byte MIDDLE_START_CODE = 65;
// byte数组
private byte[] idCodes = null;
public static synchronized CreateIdTool getInstance()