パターンに基づいてランレングス エンコーディングを実行する最もクリーンな方法を見つけようとしています。目標は、いくつかの同じパターンで構成される部分文字列を因数分解することにより、文字列を圧縮することです。
元の文字列:
start{3}{3}{3}{3}end
ご覧のとおり、「{3}
」のパターンは 4 つあります。{3}
4 " " パターンの実行を として表現することで、この String を圧縮することができ$4{3}
ます。
取得したい圧縮文字列:
start$4{3}end
方法を試しましたString.replaceAll(regex, replacement)
。myString.replaceAll("\\{([^<])\\}", "$1")
パターン全体をその値のみで置き換えることができることは知っていますが、正規表現を使用して同じパターンのランレングスを検出してカウントする方法が見つかりません。
正規表現を使用することは良い考えですか、それともこれを行うための「より良い」方法はありますか?