.NET 4.x Дан текстовый файл, подсчитать сколько раз встречается каждое слово - C#

Узнай цену своей работы

Формулировка задачи:

Добрый вечер. Решил посчитать количество повторений слов в файле. Пример: мама мыла раму, раму мыла мама. Должно вывести на экран: слово мама повторяется - 2 раза слово мыла повторяется - 2 раза слово раму повторяется - 2 раза Программа подсчет проводит, но хотелось бы узнать как это сделать проще. Спасибо.
class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Считаем количество слов в тексте.\n");
 
            FileStream moiFail = new FileStream("podschet.txt", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
            StreamReader chitau = new StreamReader(moiFail);
            string stroka = chitau.ReadToEnd();
            Console.WriteLine(stroka);
 
            string[] strokaArray = stroka.Split(new char[] { '\n', '\r', ',', ' ' },
                StringSplitOptions.RemoveEmptyEntries);
 
            IEnumerable<string> distinctStr = strokaArray.Distinct();
 
            foreach(string str in distinctStr)
            {
                int x = 0;
                for (int i = 0; i < strokaArray.Length; i++)
                {
                    if(str == strokaArray[i]) x++;
                    if(i == strokaArray.LongLength-1)
                        Console.WriteLine("Слово {0} встречается {1} раз.", str, x);
                }                
            }
            Console.ReadLine();
        }
    }

Решение задачи: «.NET 4.x Дан текстовый файл, подсчитать сколько раз встречается каждое слово»

textual
Листинг программы
        Console.WriteLine("Считаем количество слов в тексте.\n");
        string stroka = File.ReadAllText("podschet.txt");
        Console.WriteLine(stroka);
 
        string[] strokaArray = stroka.Split(new char[] { '\n', '\r', ',', ' ' },
            StringSplitOptions.RemoveEmptyEntries);
 
        var groups = strokaArray.GroupBy(n => n); //n => n.ToLower() для игнорирования регистра
        foreach (var item in groups)
        {
            Console.WriteLine("Слово {0} встречается {1} раз.", item.Key, item.Count());
        }
        Console.ReadLine();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы