如何将长字符串转换为更短的字符串

Dea*_*ler 0 java

理想情况下,我们想要花费很长时间(在java中使用System.currentTimeMillis)加上一个后缀,并将其转换为一组字符+数字更短的字符串.我们只想要使用大写字母.是否有一个库已经存在,因为它看起来像一个非常可重复使用的库,用于生成密钥,用户可以更短,因为键入更容易键入.

我想我总是可以写一个但是很容易就能抓住其他人的代码/库.

例

  • 0 = 0
  • 1 = 1
  • 2 = 2
  • 其余的数字
  • 11 = A.
  • 12 = B.
  • 13 = C.

所以我可以取一个数字并相当减少位数.

谢谢,迪恩

Mar*_*aux 6

只需使用:

long l = System.currentTimeMillis();
String str = Long.toString(l, 36).toUpperCase();
Run Code Online (Sandbox Code Playgroud)

要将其转换回来,请使用:

String str = "9XQ693458KF";
long = Long.parseLong(str, 36); // No need to use toLowerCase here
Run Code Online (Sandbox Code Playgroud)

36指的是基数(10位+ 26个字符).

JavaDoc参考:

  • @Bohemian - 那是[MAX_RADIX](http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html#MAX_RADIX).代码最好使用`Character.MAX_RADIX`而不是硬连线`36`. (3认同)
  • @TedHopp但36完全符合OP所述的要求,无论它是否为"MAX_RADIX". (2认同)