.NET Array Dictionary List String Sub ArrayList Cast Class Console Dates DataTable DateTime Enum File For Format If IndexOf Lambda LINQ Nothing Parse Process Property Regex Replace Select Sort Split StringBuilder SubstringWord Count. How can we count words in a String? Words are delimited by spaces and some types of punctuation. The easiest way to count words is with a regular expression. We use a Regex with a pattern that matches non-word characters.
Regex pattern:This means each match consists of one or more non-whitespace characters.
Based on: .NET 4 VB.NET program that counts words Imports System.Text.RegularExpressions Module Module1 Sub Main() ' Count words in this string. Dim value As String = "To be or not to be, that is the question." Dim count1 As Integer = CountWords(value) ' Count words again. value = "Mary had a little lamb." Dim count2 As Integer = CountWords(value) ' Display counts. Console.WriteLine(count1) Console.WriteLine(count2) End Sub ''' <summary> ''' Use regular expression to count words. ''' </summary> Public Function CountWords(ByVal value As String) As Integer ' Count matches. Dim collection As MatchCollection = Regex.Matches(value, "\S+") Return collection.Count End Function End Module Output 10 5
Results:The first sentence, from Shakespeare's play Hamlet, has ten words. The second sentence, from a nursery rhyme, has five words.
Note:The function here was run through a battery of tests against Microsoft Word. It was found to have a difference of 0.022%.Word Count