2

理想情况下,我们希望采用 long(Java 中的 System.currentTimeMillis) 加上一个后缀 long 并将其转换为一组字符+数字的更短的字符串。我们只希望使用大写字母。是否已经有一个用于此的库,因为它似乎是一个非常可重用的库,用于生成用户可以更轻松地键入的密钥,因为它们更短。

我想我总是可以写一个但是很容易抓住别人的代码/库会很好。

例子

  • 0 = 0
  • 1 = 1
  • 2 = 2
  • 其余数字
  • 11 = 一个
  • 12 = 乙
  • 13 = C

所以我可以取一个数字并显着减少位数。

谢谢,院长

4

2 回答 2

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 参考资料:

于 2012-12-05T21:30:13.383 回答
3

最简单的可能是将数字转换为 base-36:

Integer.toString(n, 36).toUpperCase()
Long.toString(n, 36).toUpperCase()

这将使用 to 的数字和to09大写字母。AZ

于 2012-12-05T21:31:21.440 回答