Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / programming / regular-expression

Don't count spaces when counting words.

0.00/5 (No votes)
6 Dec 2011CPOL 5.2K  
This is less expensive:For any of the next strings, it gives 8:Mr O'Brien-Smith arrived at 8.30 and spent t $1,000.99 Mr O'Brien-Smith arrived at 8.30 and spent t $1,000.99Mr O'Brien-Smith arrived at 8.30 and spent t $1,000.99 Mr O'Brien-Smith arrived at 8.30 and...

This is less expensive:


For any of the next strings, it gives 8:



  • "Mr O'Brien-Smith arrived at 8.30 and spent \t $1,000.99"
  • " Mr O'Brien-Smith arrived at 8.30 and spent \t $1,000.99"
  • "Mr O'Brien-Smith arrived at 8.30 and spent \t $1,000.99 "
  • " Mr O'Brien-Smith arrived at 8.30 and spent \t $1,000.99 "

C#
public static int CountWords(string psString)
{
    int nCount = 0;
    if (psString != null)
    {
        int nLength = psString.Length;
        if (nLength > 0)
        {
            bool lInWhite = true;
            for (int nCurrent = 0; nCurrent < nLength; nCurrent++)
            {
                if (char.IsWhiteSpace(psString[nCurrent]) != lInWhite)
                {
                    if (lInWhite == false)
                        nCount++;
                    lInWhite = lInWhite == false;
                }
            }
            if (lInWhite == false)
                nCount++;
        }
    }
    return nCount;
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)