UUID工具 @author Gao
| 10 | * |
| 11 | */ |
| 12 | public class UUIDUtil { |
| 13 | |
| 14 | public static String getUUID22() { |
| 15 | UUID uuid = UUID.randomUUID(); |
| 16 | StringBuilder sb = new StringBuilder(); |
| 17 | sb.append(digits(uuid.getMostSignificantBits() >> 32, 8)); |
| 18 | sb.append(digits(uuid.getMostSignificantBits() >> 16, 4)); |
| 19 | sb.append(digits(uuid.getMostSignificantBits(), 4)); |
| 20 | sb.append(digits(uuid.getLeastSignificantBits() >> 48, 4)); |
| 21 | sb.append(digits(uuid.getLeastSignificantBits(), 12)); |
| 22 | return sb.toString(); |
| 23 | } |
| 24 | |
| 25 | public static String getUUID32() { |
| 26 | String uuid = UUID.randomUUID().toString(); |
| 27 | uuid = uuid.replaceAll("-","");//删除横杆 |
| 28 | return uuid; |
| 29 | } |
| 30 | |
| 31 | |
| 32 | |
| 33 | |
| 34 | final static char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', |
| 35 | '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', |
| 36 | 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', |
| 37 | 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', |
| 38 | 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', |
| 39 | 'Z' }; |
| 40 | |
| 41 | final static Map<Character, Integer> digitMap = new HashMap<Character, Integer>(); |
| 42 | |
| 43 | static { |
| 44 | for (int i = 0; i < digits.length; i++) { |
| 45 | digitMap.put(digits[i], (int) i); |
| 46 | } |
| 47 | } |
| 48 | |
| 49 | /** |
| 50 | * 支持的最大进制数 |
| 51 | */ |
| 52 | private static final int MAX_RADIX = digits.length; |
| 53 | |
| 54 | /** |
| 55 | * 支持的最小进制数 |
| 56 | */ |
| 57 | private static final int MIN_RADIX = 2; |
| 58 | |
| 59 | |
| 60 | private static String digits(long val, int digits) { |
| 61 | long hi = 1L << (digits * 4); |
| 62 | return toHex(hi | (val & (hi - 1)), MAX_RADIX) |
| 63 | .substring(1); |
| 64 | } |
| 65 | |
| 66 | /** |
| 67 | * 将长整型数值转换为指定的进制数(最大支持62进制,字母数字已经用尽) |
| 68 | * |
| 69 | * @param i |
nothing calls this directly
no test coverage detected
searching dependent graphs…