/ / Wie komprimiere ich alphanumerische Zeichenfolgen? - Java, Io

Wie komprimiere ich alphanumerische Zeichenfolgen? - Java, Io

Ich möchte Strings gerne verkleinern -1234B56789C;ABC1D3E/FGH4IJKL Das sind ca. 20 - 25 Groß- und Kleinschreibung.

Mein Ziel ist es, eine alphanumerische Zeichenfolge zu haben, die maximal ist 16 Figuren. Sie müssen für Menschen lesbar bleiben.

Ist das möglich? Gibt es Algorithmen, die verwendet werden können, um alphanumerische Zeichenfolgen zu komprimieren, die auch spezielle Zeichen enthalten?

Es muss auch möglich sein, die Komprimierung zurückzusetzen.

Antworten:

2 für die Antwort № 1

Ich denke, im Allgemeinen ist es nicht möglich, es sei denn, Sie verwenden ein anderes Zielalphabet.
Soweit ich das derzeit verstehe source alphabet ist 0-9 und A-Z.
Wenn Sie Ihre verlängern target alphabet um auch bestimmte N> 0 andere Zeichen einzuschließen,
Dann können Sie eine Eingabezeichenfolge mit weniger Zeichen codieren, die sie ursprünglich hatte
(weil Sie zum Beispiel Zeichenpaare aus dem Quellalphabet mit codieren können
ein einzelnes Zeichen vom Zielalphabet).


2 für die Antwort № 2

Sie könnten versuchen, einen LZW-ähnlichen Ansatz zu wählen und nach allgemeinen Mustern in Ihren Eingaben zu suchen. Zum Beispiel - wenn Sie feststellen, dass "1234" häufig in Ihren Strings vorkommt, könnten Sie das als "Q" kodieren.

Dieser Ansatz kann Sie nicht konsequent erreichenAnforderungen einer 16-stelligen codierten Zeichenfolge, es sei denn, Sie können nachweisen, dass die von Ihnen ausgewählten Komprimierungszuordnungen immer in der Quelle mit ausreichender Regelmäßigkeit auftreten, um eine Länge von 16 Zeichen zu erzielen.