/ /英数字の文字列を圧縮する方法は? -java、io

英数字の文字列を圧縮するには? - java、io

のような文字列を縮小したい -1234B56789C;ABC1D3E/FGH4IJKL 約20〜25文字の大文字と小文字を区別しない文字です。

私の目標は、最大の英数字の文字列を持つことです 16 文字。それらは人間が読めるままでなければなりません。

それは可能ですか?いくつかの特殊文字も含む英数字文字列を圧縮するために使用できるアルゴリズムはありますか?

圧縮を元に戻すことも可能でなければなりません。

回答:

回答№1は2

一般的には、別のターゲットアルファベットを使用しない限り不可能だと思います。
私が現在理解している限り、 source alphabet 0〜9およびA〜Zです。
延長する場合 target alphabet 特定のN> 0の他の文字も含めるには、
その後、元々持っていたより少ない文字で入力文字列をエンコードできます
(例えば、ソースアルファベットからいくつかの文字をエンコードすることができるため
ターゲットアルファベットからの単一の文字)。


回答№2については2

LZWのようなアプローチを試みて、入力の一般的なパターンを探すことができます。たとえば、文字列に「1234」が頻繁に出現する場合、「Q」としてエンコードできます。

このアプローチでは、常にあなたを達成することはできません選択した圧縮マッピングが常に16文字の長さを達成するのに十分な規則性でソースで発生することを証明できない限り、16文字のエンコード文字列の要件。