.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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д