.NETには次のような文字列があります。
string str = "Lorem ipsum is great. lorem ipsum Lorem...";
ケースに一致するすべての「Lorem」のカウントも取得する必要があります。したがって、Loremは2回表示され、loremを無視する必要があります。
ありがとう。
.NETには次のような文字列があります。
string str = "Lorem ipsum is great. lorem ipsum Lorem...";
ケースに一致するすべての「Lorem」のカウントも取得する必要があります。したがって、Loremは2回表示され、loremを無視する必要があります。
ありがとう。
string str = "Lorem ipsum is great. lorem ipsum Lorem...";
string word = "Lorem";
Console.WriteLine(Regex.Matches(str,word).Count);
Linqを使用できます。
String searchWhat = "Lorem";
int count = str.Split(new[]{' ','.'}, StringSplitOptions.None)
.Count(w => w == searchWhat);
デモ: http: //ideone.com/a9XHln
編集:「LoremLoremo」は2としてカウントされるとコメントしたので、その単語が別の単語の一部であっても、特定の単語(大文字と小文字を区別する)のすべての出現をカウントする必要があります。次に、使用できますString.Contains
:
int count = str.Split(new[]{' ','.'}, StringSplitOptions.None)
.Count(w => w.Contains(searchWhat));
デモ: http: //ideone.com/fxDGuf
以下のコードを使用してください。
using System.Text.RegularExpressions;
string text = "Lorem ipsum is great. lorem ipsum Lorem...";
int count = new Regex("Lorem").Matches(text).Count;
それがあなたを助けることを願っています。そうでない場合は私に知らせてください。
を使用して行うことができますLinq
:
string str = "Lorem ipsum is great. lorem ipsum Lorem...";
int loremCount = str.Split(new[]{' ','.',','}, StringSplitOptions.None).Count(s => s.Equals("Lorem"));
「ロレモ」を検討したい場合:
int loremCount = str.Count(s => s.Equals("Lorem"));
これが私の2セントです。センシティブな「Lorem」ケースのすべてのインスタンスが検出されますが、「Loremo」や「thismightnotLorembewhatyouwant」など、「Lorem」が含まれているもののカウントが返されます。
質問は少し曖昧だったので、この答えはあなたが要求したものに一致する迅速な解決策です。
string test = "Lorem ipsum is great. lorem ipsum Lorem...";
int pos = -1;
int count = 0;
while ((pos = test.IndexOf("Lorem", pos+1)) != -1)
count++;
これで他の操作を実行できるようにする場合は、文字列全体をリストにダンプしてから、そのリストからLinqクエリを実行できます。
var phrase = "Lorem ipsum...";
var wordList = phrase.Split(' ').ToList();
var loremCount = wordList.Where(x => x.ToLower() == "lorem").Count();
このようにして、wordListは再利用可能です。