2012-01-23 6 views
1

文字列に単語が現れる回数を調べるのは面白いです。
私はマッチャー(正規表現を構成し、グループを数える)を使ってSUN Matcher Demoの例を見ました。Java:文字列内に単語が存在する回数を調べる(C#の式に似たものがありますか?)

私はこれが唯一の方法であるか興味がありました。

Regex.Matches(input, "true").Count(C質問)からです。

それとも私のコンテキストで:

Listで特定の単語がStringに表示された場合、私がチェックするcontainsを使用してループにしていた場合(??場で)を取得するための簡単な/エレガントな方法があります単語が出現する回数(私は既にそれが存在することを知っている)?

+0

のようなものは、パターンを見てみましょう行うことができます。http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.htmlをし、 Matcher:http://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.htmlクラス –

+0

これらは両方とも1.4以降ですから、すばらしいはずです – Brian

+0

質問の最初と2番目のリンク同じページにリダイレクトしてください... – Gevorg

答えて

3

あなたは

Pattern p = Pattern.compile(toFind, Pattern.LITERAL | Pattern.CASE_INSENSITIVE); 
int occurances = p.split(text, -1).length -1; 
+0

彼はおかしい、私はほぼ同じ答えを入力し、あなたのを参照した後にそれを削除しました –

+0

+1私は大文字小文字を区別しない検索をしたい場合は、私は "(?i)" + toFind'権利を行う必要があります?あなたの提案は 'int occurances = text.split(new StringBuilder("(i) "))append(toFind).toString()); – Cratylus

+0

ソース内の小文字の検索で、 'text.toLowerCase()。split(...)'のようなものを試してみてください。findパターンはすでに小文字であると主張します。 –

関連する問題