// Count the number of characters matching the option.
        public static int CountChars(string str, SeparateOptions option)
        {
            string found, notFound;

            Separate(str, out found, out notFound, option);
            return(found.Length);
        }
        // Separate characters from a string into two strings.
        public static void Separate(string str, out string found, out string notFound, SeparateOptions option)
        {
            found    = "";
            notFound = "";

            foreach (char ch in str)
            {
                switch (option)
                {
                case SeparateOptions.Digits:
                    if (char.IsDigit(ch))
                    {
                        found += ch;
                    }
                    else
                    {
                        notFound += ch;
                    }
                    break;

                case SeparateOptions.Letters:
                    if (char.IsLower(ch) || char.IsUpper(ch))
                    {
                        found += ch;
                    }
                    else
                    {
                        notFound += ch;
                    }
                    break;

                case SeparateOptions.Punctuation:
                    if (char.IsPunctuation(ch))
                    {
                        found += ch;
                    }
                    else
                    {
                        notFound += ch;
                    }
                    break;

                case SeparateOptions.WhiteSpace:
                    if (char.IsWhiteSpace(ch))
                    {
                        found += ch;
                    }
                    else
                    {
                        notFound += ch;
                    }
                    break;
                }
            }
        }