2017-09-01 1 views
-2

Ich habe diese gigantische Saite, ich frage mich, ob sie komprimiert werden kann und wenn ja, was sind gute Möglichkeiten, dies zu tun.Gute Möglichkeit, eine massive Saite verlustfrei zu komprimieren

„01011311100111111112110131131011111110111011113111101101001110110110100110001001111003011011101111311102110011030111001311110113110111110111111111111111311103010001113110013100100101110000010111111111001000111111100001100030111111131113113101101001100111111100110100131001102101101110030300300011011111001111100010110011201111111011110011101011000011100013110101111003000131111012011131000000113111111311111001100111011111000101111101313111010000001131103011210111101001110010100113111311000111001100011110001000001111110001111111001010001011111100111000131000“

Dies ist ein Beispiel und es gibt Tausende weitere Linien. Irgendwelche Vorschläge?

+1

nicht ganz sicher, ob es etwas ist, was Sie wollen, aber 0000011111110000111 könnte [0: 5] [1: 7] [0: 4] [1: 3] (oder ähnlich. Nimmt einige zusätzliche Funktionalität, aber besonders für große Strings wie diese könnte dies viel kürzer sein – Stultuske

+1

Komprimierung ist ein gut untersuchtes Thema und es gibt viele Bibliotheken und Tools, die dies tun können .. Fragen auf [so] ist kein guter Ersatz für die Forschung selbst. – Dukeling

+0

Basierend auf diesen Daten würde ich es über die Kodierung sagen.Wenn Sie 8bit pro Char verwenden, haben Sie 256 mögliche Zeichen, wenn Sie nur 0-9 benötigen.Vielleicht versuchen Sie, 10 Zeichen zusammenzufassen, in Zahlen umzuwandeln und sie lange zu speichern etwas dann .. Machen Sie eine Liste/Arry Ihrer Longs –

Antwort

0

Ich schlage vor, Out-of-the-Box-Lösungen auszuprobieren, bevor Sie Ihren eigenen Komprimierungsalgorithmus implementieren. Hier können Sie java.util.zip.GZIPInputStream und java.util.zip.GZIPOutputStream ausprobieren, wenn dies zu ausreichend komprimierten Ergebnissen führt. Nur wenn Sie mit dem Ergebnis unzufrieden sind, denken Sie vielleicht an eigene Pläne.

Verwandte Themen