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