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

java中压缩字符串的简单方法?,java,compression,ascii,bit-shift,huffman-code,Java,Compression,Ascii,Bit Shift,Huffman Code,降低字符串的已用内存空间并最终将其保存在光盘上的最简单方法是什么??(使用java) 我听说过Hufmann编码,但是你需要创建一个树来实现它。 另一种方法应该是位移位,因为ASCII中的字符总是使用1字节的空格 这是理论,但如何在java中实现像位移位这样的功能,从而真正减少光盘上的字符串内存使用 提前感谢我可能会推荐一些名字,你可以使用谷歌进一步阅读 1) cannonic Hoffman编码-无需存储树 但只有符号的长度 2) 算术编码-一个更有趣的场景是自适应算术编码,它根据编码时单词的

降低字符串的已用内存空间并最终将其保存在光盘上的最简单方法是什么??(使用java)

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

这是理论,但如何在java中实现像位移位这样的功能,从而真正减少光盘上的字符串内存使用


提前感谢

我可能会推荐一些名字,你可以使用谷歌进一步阅读

1) cannonic Hoffman编码-无需存储树 但只有符号的长度

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

3) 前置前缀编码-如果字符串中的单词有常用前缀,例如字典,则可以剪切单词的前缀并只存储其长度 解码时,从前面的单词中获取前缀 或者前面字符串的某个索引中的单词

这些都很容易实现(同样在java中),它们的伪代码和真正的java实现可以在Google搜索的第一个链接中找到

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

使用(sic)类。

通过流式传输将其传输到文件。你正在为哪种设备编程以节省磁盘空间?@Boristeider,此外,你可以不将其传输到文件,但是以这样的方式对字节数组:
str=newbytearrayoutputstream();out=新的ZipoutStream(str)@DmitryGinzburg当然可以。OP希望将其保存到磁盘。谢谢您的回复!一般来说,我没有特定的用例。我只是想达到一个字符串的压缩“为了好玩”^^该字符串包含一个较长的文本,最初存储在一个文件中。现在我想压缩这个字符串,并以较低的内存使用率将其再次放在光盘上…@appcodix那么在我看来,规范的哈夫曼编码是最好的选择,或者您可以使用gzip库,我怀疑gzip库使用的是哈夫曼编码(如果我错了请纠正我),另请参见:DeflaterOutputStream(示例:)和DeflaterInputStream。也很有用: