メッセージの暗号を解除するには、まずその鍵を見つける必要があります。与えられた情報から、私はキーが文字列の一部です見つける:文字列中で最も長い連続した部分文字列を見つける方法は?
STR =「251220825122082」
私たちは、簡単にキーをすることになっているので、キーが「2512208
」であることを得ることができますメッセージの暗号化に繰り返し使用される。しかし、私は多くの方法を試して、 "25122082
"という答えを得ました。これは最後にもう2つ追加されますが、それは鍵のもう一つの始まりです。
私が試してみまし方法:
- 正規表現:
String repeated = str.replaceAll("(.+?)\\1+", "$1");
- LRS Javaこれら2
が同じ答えを提供( "25122082
")。
誰でもこの問題を解決できますか?
ありがとうございました!
の可能性のある重複:http://stackoverflow.com/questions/10355103/finding-the-longest-repeated-substringは –
'replaceAll'は、行うことになっているものを正確にやっていますそれは25122082512208を2512208に置き換えます。文字列の最後にはまだ2が残りますが、置き換えられません。ここでは、文字列から情報を抽出しようとしているので、 'replaceAll'は間違ったツールです。正規表現を検索するには 'find'を使用し、キャプチャグループを抽出するには' group'を使います。 'replaceAll'は、入力文字列の一部を他の文字列に置き換え、入力文字列の残りの部分だけを残すためのものです。それはあなたがここでやろうとしていることではありません。 – ajb
2512208がキーであり、25122082ではないことをどのように知っていますか? –