Member 14176736
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodingAlgorithms
{
//Count the number of words in a string (Needs to handle multiple spaces between words)
public static class WordCount
{
public static int Count(string x)
{
int result = 0;
//Trim whitespace from beginning and end of string
x = x.Trim();
//Necessary because foreach will execute once with empty string returning 1
if (x == "")
return 0;
//Ensure there is only one space between each word in the passed string
while (x.Contains(" "))
x = x.Replace(" ", " ");
//Count the words
foreach (string y in x.Split(' '))
result++;
return result;
}
}
}
CHill60
Что делать, если в файле есть предложения, заканчивающиеся точкой? Или вопросительный знак,или восклицательный знак! Что делать, если есть список, разделенный запятыми или точками с запятой?
Ваш код вернет неверное количество слов для приведенного выше комментария (на 2 меньше фактического числа).
Но на самом деле это просто гораздо более длинная версия решения 3 - за исключением того, что вы не используете опцию split для удаления пустых значений, которые приведут к нескольким пробелам, а затем вы фактически перебираете возвращаемые значения, чтобы подсчитать их, вместо того чтобы использовать действительно удобное свойство строкового массива … Рассчитывать. Эти методы были примерно 9 лет назад, когда был задан вопрос, ваше решение выглядит так, как будто оно было написано для VB6!