我有一个字符串,我想用 Java 将它编码为 long;我也想把它从一个很长的回解码成一个字符串。重要的是它是“长”(原始)而不是长(对象)。字符串的最大长度为 128 个字符,但通常要小得多。字符串的字符以 ASCII 编码,并且仅使用标准 ASCII 值 (0-127) 而不是扩展的 ASCII 代码 (0-256)。
我只需将每个 char 转换为 long (8 个字节)的每个字节,就可以对长度为 8 的字符串进行编码。由于每个字符的范围是 0-127(7 位),我相信我最多可以对 9 个长字符(64 位 / 7 位 = 9.14)进行编码,但我还没有实现它。
我有一种感觉(编码所有 128 个字符)可能是不可能的,但我想打开这个问题,看看是否有更好的技术。
如果 128 个字符是不可能的,那么您可以编码成 long 的最大字符数是多少?
PS我也研究了一下散列,但似乎它在问题的解码要求上失败了。