> ' Count the occurences of one string within another > ' expC1 Character to look for > ' expC2 String > Public Function Occurs(ByVal tcCharacter As String, ByVal tcString As String) As Integer > Dim lcString As String = "" > Dim lnCount As Integer = 0 > Dim lnLocation As Integer = 0 > > lcString = tcString > > Do > lnLocation = lcString.IndexOf(tcCharacter, lnLocation) > > If lnLocation < 0 Then > Exit Do > Else > lnCount = lnCount + 1 > lnLocation = lnLocation + 1 > End If > > Loop While True > > Return lnCount > End Function >This is what I implemented and my test case:
String source = "Test/Here/Should/be//7/times/Here"; Console.WriteLine("/ occurs {0} times in {1}", source.Occurs('/'), source); Console.WriteLine("Here occurs {0} times in {1}", source.Occurs("Here"), source); Console.ReadLine();
/// <summary> /// Occurs function /// </summary> /// <param name="source"></param> /// <param name="pattern"></param> /// <returns></returns> public static Int32 Occurs(this String source, char pattern) { return source.Split(pattern).Length - 1; } public static Int32 Occurs(this String source, String pattern) { return (source.Length - source.Replace(pattern, "").Length)/pattern.Length; }Is it OK?