C# 计算字符串在字符串中出现的次数
我只是有一个字符串,看起来像这样:C# 计算字符串在字符串中出现的次数,c#,string,count,C#,String,Count,我只是有一个字符串,看起来像这样: string searchText = "7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false"; string regexPattern = @"\btrue\b"; int numberOfTrues = Regex.Matches(searchText, regexPattern).Count; 7,真,不,假:67,假,不,假:5,假,不,假:5,假,不,不,假 我只想
string searchText = "7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false";
string regexPattern = @"\btrue\b";
int numberOfTrues = Regex.Matches(searchText, regexPattern).Count;
7,真,不,假:67,假,不,假:5,假,不,假:5,假,不,不,假
我只想计算字符串“true”在该字符串中出现的次数。我觉得答案就像是字符串。count这个字符串出现在字符串()中的所有时间,但由于某种原因,我就是想不出来。帮助?如果字符串可以包含类似“true”的字符串,则此操作将失败
Regex.Matches(input, "true").Count
这样做,请注意,您必须为“test”定义正则表达式
string s = "7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false";
string[] parts = (new Regex("")).Split(s);
//just do a count on parts
和林克
string s = "7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false";
var count = s.Split(new[] {',', ':'}).Count(s => s == "true" );
您的正则表达式应该是
\b真的\b
,以避免Casper提出的“误解”问题。完整的解决方案如下所示:
string searchText = "7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false";
string regexPattern = @"\btrue\b";
int numberOfTrues = Regex.Matches(searchText, regexPattern).Count;
确保文件顶部包含System.Text.RegularExpressions命名空间。可能不是最有效的,但认为这是一种简洁的方法
class Program
{
static void Main(string[] args)
{
Console.WriteLine(CountAllTheTimesThisStringAppearsInThatString("7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false", "true"));
Console.WriteLine(CountAllTheTimesThisStringAppearsInThatString("7,true,NA,false:67,false,NA,false:5,false,NA,false:5,false,NA,false", "false"));
}
static Int32 CountAllTheTimesThisStringAppearsInThatString(string orig, string find)
{
var s2 = orig.Replace(find,"");
return (orig.Length - s2.Length) / find.Length;
}
}
在这里,我将使用LINQ重新构建答案。这表明煮鸡蛋的方法不止n种:
public int countTrue(string data)
{
string[] splitdata = data.Split(',');
var results = from p in splitdata
where p.Contains("true")
select p;
return results.Count();
}
@jball我认为所有的解决方案都是用来计算character@AakashM,请看第二个链接。此外,这是一个完美的机会,可以为该问题提供更正确的答案(即基于字符串,而不是基于字符)。请参阅我很高兴您不为Microsoft工作,并获得命名方法!仅以简洁为基础——你赢了;)C#字符串中没有匹配项。哎呀。正则表达式。别担心为什么我们要转义
输入
它不是正则表达式?@tpower,和我的问题一样。我研究了Regex.Escape
,并在LINQPad中运行了测试来确认。我编辑了编辑以删除它。哈哈-我应该将您的标记为正确的,仅用于使用我建议的方法名称。:)感谢它的工作,也很好和聪明:)字符串变量不应该被称为Regex-它与.NET Regex类名本身冲突。