我正在尝试计算这个程序中的单词,但我不明白为什么程序的数量少于它必须的数量。
例如:
太阳很热
程序会告诉我只有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);
答案 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);
}
}
}