理想情况下,我们需要花费很长时间(Java中的System.currentTimeMillis)加上一个后缀,并将其转换为一组字符+数字,用更短的字符串。我们只想要使用大写字母。是否有一个库已经存在,因为它看起来像是一个非常可重复使用的库,用于生成密钥,用户可以在更短的时间内输入密钥。
我想我总是可以写一个但是很容易就能抓住别人的代码/库。
例如
所以我可以拿一个数字来减少数字位数。
感谢, 迪安
答案 0 :(得分:6)
只需使用:
long l = System.currentTimeMillis();
String str = Long.toString(l, 36).toUpperCase();
要将其转换回来,请使用:
String str = "9XQ693458KF";
long = Long.parseLong(str, 36); // No need to use toLowerCase here
36表示基数(10位+ 26个字符)。
JavaDoc引用:
答案 1 :(得分:2)
最简单的可能是将数字转换为base-36:
Integer.toString(n, 36).toUpperCase()
Long.toString(n, 36).toUpperCase()
这将使用0
到9
的数字和A
到Z
的大写字母。