我正在尝试缩短java UUID,同时保留与UUID相同的唯一性.我写了以下代码:
public static void main(String[] args) { UUID uid=UUID.randomUUID(); String shortId=to62System(uid.getMostSignificantBits())+ to62System(uid.getLeastSignificantBits()); System.out.println(shortId); } static char[] DIGITS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray(); static int RADIX = DIGITS.length; public static String to62System(long value) { if (value == 0) { return "0"; } else { char[] buf = new char[11]; int charPos = 10; long i = value; while (i != 0) { buf[charPos--] = DIGITS[Math.abs((int) (i % RADIX))]; i /= RADIX; } return new String(buf, charPos + 1, (10 - charPos)); } }
我做得对吗还是我忽略了一些重要的事情?