How can we count words in a String
using the VB.NET language? 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. The Matches()
function can be used.
This program imports the System.Text.RegularExpressions
namespace. This allows us to use the Regex
type directly in the CountWords
function.
CountWords
, we use the Regex.Matches
shared function with the pattern "\S+".String
literals as arguments to CountWords
. Then we write the word counts that were received.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 Module10 5
Word counting should be close to standard functionality found in programs like Microsoft Word. The function here was checked against Microsoft Word.
We implemented a word count function in VB.NET. By using the Count
property on the MatchCollection
, we can count the number of words in a way that is close to other programs.