C#无法理解数

时间:2017-02-08 18:35:17

标签: c# count

我正在尝试计算这个程序中的单词,但我不明白为什么程序的数量少于它必须的数量。

例如:

  太阳很热

程序会告诉我只有2个单词。

Console.WriteLine("enter your text here");
string text = Convert.ToString(Console.ReadLine());
int count = 0;
text = text.Trim();
for (int i = 0; i < text.Length - 1; i++)
{
    if (text[i] == 32)
    {
        if (text[i + 1] != 32)
        {
            count++;
        }
    }
}
Console.WriteLine(count);

2 个答案:

答案 0 :(得分:2)

正则表达式最适合此。

 var str = "this,is:my test   string!with(difffent?.seperators";
 int count = Regex.Matches(str, @"[\w]+").Count;

结果是8。 计算所有单词,不包括空格或任何特殊字符,无论它们是否重复。

答案 1 :(得分:1)

if (text[i] == 32)

你在计算空格,而不是单词

使用MatchCollection

这是一个更好的解决方案
using System.Text.RegularExpressions;

namespace StackOverCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("enter your text here");
            string text = Convert.ToString(Console.ReadLine());
            MatchCollection collection = Regex.Matches(text, @"[\S]+");

            Console.WriteLine(collection.Count);
        }
    }
}