2017-12-09 17 views
-1

私は何をしようとしていますか?出力は以下の値を返す必要があります。リニアアルゴリズムで文字列の出現を見つけようとしています

私は、各文字をチェックするためにマルチシミオンループを使用して反復する必要があることを知っていますが、私はそれについてどうなるかについてかなり困惑しています。

String str = "what has the time" 


value1 = "hatw hat has the time" 
value2 = "wwhhaatt hhaas the time" 
value3 = "what has thetime" 


output line 1: 00001 
output line 2: 00256 
output line 3: 00000 
+1

あなたは、入力データのセット(少なくとも5つの入力レコード)と、対応する出力を提供する必要があります。あなたが示したことから何をしようとしているのかを把握することはできません。 –

+0

@ user9075156あなたはもっと多くの情報を提供できますか?https://stackoverflow.com/help/how-to-ask –

答えて

0

あなたが快適RegEx使用している場合は、その方法と作業は、あなたの手間を大幅に節約できます。

String str = "purrpppppllleeee ssaiyan purple saiyan"; 
String findStr = "purple saiyan"; 
String regexStr = ""; 
for(int i = 0; i < findStr.length(); i++) 
{ 
    regexStr += findStr.charAt(i)+"+"; 
} 
regexStr += "\\s*"; 
Pattern patt = Pattern.compile(regexStr); 
Matcher m = patt.matcher(str); 
int count = 0; 
while(m.find()) 
{ 
    count++; 
} 

ループは、findStrのすべての文字の後にプラス記号を追加するだけです。

文字の後にプラス記号を追加すると、文字の複数の出現がある可能性があることがマッチャーに伝えられます。終わり

、マッチャが(コードの形で)フレーズfindStrが発生した回数を見つけ

+0

すぐに説明する –

+0

あなたはこの答えを広げて、あなたが提供したリンクに – Keara

+0

私は午前。少し行きました:/ –

関連する問題