如何压缩字母数字字符串?

时间:2014-12-03 15:01:35

标签: java io

我想缩小像-1234B56789C;ABC1D3E/FGH4IJKL这样的字符串,这些字符串大约有20 - 25个不区分大小写的字符。

我的目标是拥有一个最多为16个字符的字母数字字符串。它们必须保持人类可读性。

这可能吗?是否有算法可用于压缩也有一些特殊字符的字母数字字符串?

还必须能够恢复压缩。

2 个答案:

答案 0 :(得分:2)

我认为一般来说,除非你使用不同的目标字母,否则它是不可能的 据我所知,目前你的source alphabet是0-9和A-Z 如果您将target alphabet扩展为包含某些N> 0其他字符,则 然后你可以编码一个输入字符串,其字符数较少 (因为例如你可以用来源字母表中的字符串编码 来自目标字母表的单个字符)。

答案 1 :(得分:2)

您可以尝试类似LZW的方法,并在输入中查找常见模式。例如 - 如果您发现字符串中经常出现“1234”,那么您可以将其编码为“Q”。

这种方法不能始终如一地满足您对16个字符编码字符串的要求,除非您能够证明您选择的压缩映射将始终在源中以足够的规律性发生,以实现16个字符的长度。

相关问题