Count the number of times that a substring occurs in the text.
/// <summary>
/// Count the number of times that the substring occurs in the text.
/// </summary>
/// <param name="text">the text to search</param>
/// <param name="substring">the substring to find</param>
/// <returns>the number of times the substring occurs in the text</returns>
/// <remarks>
/// <para>
/// The substring is assumed to be non-repeating within itself.
/// </para>
/// </remarks>
private static int CountSubstrings(string text, string substring)
{
var length = text.Length;
if (length == 0)
{
return 0;
}
var substringLength = substring.Length;
if (substringLength == 0)
{
return 0;
}
int count = 0, offset = 0;
while (offset < length)
{
var index = text.IndexOf(substring, offset, StringComparison.Ordinal);
if (index == -1)
{
break;
}
count++;
offset = index + substringLength;
}
return count;
}