給定一個字符串數組,例如這樣的:計數子出現在字符串[]
string[]={"bmw"," ","1bmw"," "};
我需要計數的子bmw
多久該數組中發生。在這個例子中它發生2次。
如何在C#中編寫?
還我想忽略大寫字符,
螫[] = { 「BMW」, 「」, 「BMW」, 「1bmw」}
然後計數結果爲3。
我該怎麼辦?
#感謝大家的回答。
給定一個字符串數組,例如這樣的:計數子出現在字符串[]
string[]={"bmw"," ","1bmw"," "};
我需要計數的子bmw
多久該數組中發生。在這個例子中它發生2次。
如何在C#中編寫?
還我想忽略大寫字符,
螫[] = { 「BMW」, 「」, 「BMW」, 「1bmw」}
然後計數結果爲3。
我該怎麼辦?
#感謝大家的回答。
沒有LINQ
int counter = 0;
foreach(string item in string_array)
{
if(item.IndexOf("bmw") > -1){
counter++;
}
}
如果您使用C#3,你可以使用LINQ:
var strings = {"bmw"," ","1bmw"," "};
var count = string.Where(s => s.IndexOf("bmw") > -1).Count();
否則,循環將工作太:
string[] strings = {"bmw"," ","1bmw"," "};
int count = 0;
foreach(string s in strings) {
if(s.IndexOf("bmw" > -1)) {
count++;
}
}
嗨,如何刺[] = {「bmw」,「」,「BMw」,「1bmw」}有一個「BMw」與「bmw」不完全相同我也想計算這個單詞。 – user321952 2010-04-26 14:44:41
@ shaon-fan:如果你想要不區分大小寫的比較,只需使用:'IndexOf(「bmw」,StringComparison.OrdinalIgnoreCase)''OrdinalIgnoreCase'參數將匹配比較中的任何套管。 – LBushkin 2010-04-26 14:47:50
嘗試:
var str = new string[] { "bmw", " ", "1bmw", " " };
var count = str.Count(s => s.Contains("bmw"));
下一個代碼將返回不區分大小寫出現的次數(如在評論中提到作家):
var count = str.Count(s =>
s.IndexOf("bmw", StringComparison.OrdinalIgnoreCase) > -1
);
更多關於字符串比較可以發現here。
嗨,叮叮[] = {「bmw」,「」,「BMw」,「1bmw」}如果有一個「BMw」與「bmw」不完全相同,我也想把這個單詞計算在內。 – user321952 2010-04-26 14:45:33
您可以使用LINQ這個像這樣:使用LINQ
static int CountOfString(IEnumerable<string> items, string substring, bool isCaseSensitive)
{
StringComparison comparison = StringComparison.InvariantCulture;
if (!isCaseSensitive)
comparison = StringComparison.InvariantCultureIgnoreCase;
return items.Count(item => item.IndexOf(substring, comparison) > -1);
}
var s = new string[] {"bmw", "1bmw"};
var result = s.Where(o=>o.Contains("bmw")).Count();
嗨,如何刺[] = {「bmw」,「」,「BMw」,「1bmw」}有一個「BMw」不完全相同「bmw」我也想數這個單詞。 – user321952 2010-04-26 14:45:03
一種方法使用它
string[] items = { "bmw", " ", "1bmw", " " };
int count = CountOfString(items, "bmw", false);
案例不敏感使得它多一點冗長,但仍然使用以下相當緊湊:
var str = new sting[]={"bmw", "", "BMw","1bmw"};
var count = str.Count(s => s.IndexOf("bmw", StringComparison.InvariantCultureIgnoreCase) > -1);
嗨,怎麼樣刺痛[] = {「寶馬」,「」,「寶馬」,「1bmw」} 有一個「寶馬」不完全一樣用「寶馬」 我也想算這樣word in。 – user321952 2010-04-26 14:43:53
@ shaon-fan處理這個問題的最簡單方法是在每個字符串上使用ToLower()來進行搜索。 – kemiller2002 2010-04-26 14:48:00