C# 在一个字符串中计算\r\r
我想计算字符串变量中C# 在一个字符串中计算\r\r,c#,string,C#,String,我想计算字符串变量中\r\r的频率 例如: string sampleString = "9zogl22n\r\r\nv4bv79gy\r\r\nkaz73ji8\r\r\nxw0w91qq\r\r\ns05jxqxx\r\r\nw08qsxh0\r\r\nuyggbaec\r\r\nu2izr6y6\r\r\n106iha5t\r"; 结果将出现在本例8中。您可以使用LINQ选择\r\r开始的所有位置并对其进行计数: Enumerable.Range(0, s.Length).Where(i
\r\r
的频率
例如:
string sampleString = "9zogl22n\r\r\nv4bv79gy\r\r\nkaz73ji8\r\r\nxw0w91qq\r\r\ns05jxqxx\r\r\nw08qsxh0\r\r\nuyggbaec\r\r\nu2izr6y6\r\r\n106iha5t\r";
结果将出现在本例8中。您可以使用LINQ选择
\r\r
开始的所有位置并对其进行计数:
Enumerable.Range(0, s.Length).Where(idx => s.IndexOf(@"\r\r", idx)==idx).Count();
请注意,
“\r\r\r”
将在上述代码中返回2…您可以使用LINQ选择\r\r
开始的所有位置并对其进行计数:
Enumerable.Range(0, s.Length).Where(idx => s.IndexOf(@"\r\r", idx)==idx).Count();
请注意,
“\r\r\r”
将在上述代码中返回2…您可以使用正则表达式:
var res = Regex.Matches(s, "\r\r").Count;
或字符串上的循环:
var res = 0;
for (int i = 0; i < str.Length - 1; i++)
if(s[i] == '\r' && s[i + 1] == '\r')
res++;
var-res=0;
对于(int i=0;i
您可以使用正则表达式:
var res = Regex.Matches(s, "\r\r").Count;
或字符串上的循环:
var res = 0;
for (int i = 0; i < str.Length - 1; i++)
if(s[i] == '\r' && s[i + 1] == '\r')
res++;
var-res=0;
对于(int i=0;i
您可以为此编写一个简单的扩展方法:
public static int LineFeedCount(this string source)
{
var chars = source.ToCharArray();
bool found = false;
int counter = 0;
int count = 0;
foreach(var ch in chars)
{
if (ch == '\r') found = true;
else found = false;
if (found) counter++;
else counter = 0;
if(counter != 0 && counter%2 == 0) count++;
}
return count;
}
然后使用它:
int count = inputString.LineFeedCount();
您可以为此编写一个简单的扩展方法:
public static int LineFeedCount(this string source)
{
var chars = source.ToCharArray();
bool found = false;
int counter = 0;
int count = 0;
foreach(var ch in chars)
{
if (ch == '\r') found = true;
else found = false;
if (found) counter++;
else counter = 0;
if(counter != 0 && counter%2 == 0) count++;
}
return count;
}
然后使用它:
int count = inputString.LineFeedCount();
尝试以下方法:
public static int CountStringOccurrences(this string text, string pattern)
{
int count = 0;
int i = 0;
while ((i = text.IndexOf(pattern, i)) != -1)
{
i += pattern.Length;
count++;
}
return count;
}
用法:
int doubleLinefeedCount = sampleString.CountStringOccurrences("\r\r");
尝试以下方法:
public static int CountStringOccurrences(this string text, string pattern)
{
int count = 0;
int i = 0;
while ((i = text.IndexOf(pattern, i)) != -1)
{
i += pattern.Length;
count++;
}
return count;
}
用法:
int doubleLinefeedCount = sampleString.CountStringOccurrences("\r\r");
您可以使用使用查找字符拆分字符串的技巧\r\r: (这不是很有效,我们需要分配2个字符串数组,但我将其作为一种可能的解决方案发布,特别是如果您对分离的令牌感兴趣的话)
您可以使用使用查找字符拆分字符串的技巧\r\r: (这不是很有效,我们需要分配2个字符串数组,但我将其作为一种可能的解决方案发布,特别是如果您对分离的令牌感兴趣的话) 您不必使用.Where()和.Count()。.Count()方法本身有一个带谓词的重载。请参阅:您不必使用.Where()和.Count()。.Count()方法本身有一个带谓词的重载。见: