Java 无损压缩大量字符串的好方法

Java 无损压缩大量字符串的好方法,java,compression,Java,Compression,我有这个巨大的字符串,我想知道它是否可以被压缩,如果可以的话,有什么好的方法来做到这一点 0101131110011111111111111111111111110110111111111111111111111111111111111111111111111111111111111100010111003011110111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110

我有这个巨大的字符串,我想知道它是否可以被压缩,如果可以的话,有什么好的方法来做到这一点

0101131110011111111111111111111111110110111111111111111111111111111111111111111111111111111111111100010111003011110111111111111111111111111111111111111111111111111111111111111111111111111111111111111111110011111001100111110011001100111001100110011111111100111100111100111100111100111100111100111111100111100111100111100111111100111100111100111100111100111100111100111100111100111100111100111100111100111100111100111100111100111100100100111100111100100111100111100111100111100100111100100111100100111100111100111100100111000131110111100300013111101201111000111100113111111111111111111011111110001111000111100011010113110301112101111111010011110010100113111311000111100011110001111000110000111100011000011110001111000111100011000011110001111000111100011110001111000111100011110001111000111100011110001111000111100011110001111000111100001001001110001111000111100001001001001001110000100100100111000010010010010011100


这是一个示例,还有数千行。有什么建议吗?

我建议在考虑实施自己的压缩算法之前,先尝试一下现成的解决方案。在这里,您可以尝试java.util.zip.GZIPInputStream和java.util.zip.GZIPOutputStream,如果这样可以得到充分压缩的结果。只有当你对结果不满意时,你可能会想到自己的方案。

不完全确定这是否是你想要的,但0000011111000111可能会变成[0:5][1:7][0:4][1:3]或类似的方案。需要一些额外的功能,但特别是对于像这样的大字符串,这可能会使它变得很短。压缩是一个研究得很好的主题,有很多库和工具可以实现这一点。询问并不能很好地代替自己做研究。基于这些数据,我会说这是关于编码的。如果你每字符取8比特,那么当你只需要0-9个字符时,你有256个可能的字符。也许试着把10个字符加起来,转换成数字,然后把它们储存在一个长的或什么的盒子里。然后列出你可能与之相关的工作清单。