在java中压缩字符串的简单方法?

时间:2014-05-31 19:30:50

标签: java compression ascii bit-shift huffman-code

哪种方法可以最简单的方法来降低字符串的已用内存空间并最终将其保存在光盘上? (使用java)

我听说过Hufmann Coding,但你需要创建一棵树才能实现它。 另一种方法应该是位移,因为ASCII中的字符总是使用1个字节的空间......

这是理论,但如何实现像java中的位移这样的东西,真正缩小了光盘上的字符串内存使用量?

提前致谢

2 个答案:

答案 0 :(得分:1)

我可能会建议您使用Google进一步阅读的一些名称。

1)大麻霍夫曼编码 - 无需存储树 但只是符号的长度。

2)算术编码 - 一个更有趣的场景是自适应算术编码,它使编码适应编码时单词的概率。

3)前缀编码 - 例如,如果你的字符串中的单词有像字典一样的公共前缀,你可以剪切一个单词的前缀并只存储它的长度 在解码时从前一个单词中获取前缀 或者之前出现的字符串的某个索引中的单词。

这些很容易实现(也在java中),它们的伪代码以及elreal java实现可以在Google搜索的第一个链接中找到。

当然还有更多技术,正确的技术取决于实际使用。 如果你扩展你的问题并给出一个用例,其他人和我可能能够将该技术微调到该场景。

答案 1 :(得分:1)

使用Deflater(原文如此)类。