Найти самое длинное слово и определить, сколько раз оно встретилось в тексте - C#

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

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

Написать программу, которая считывает текст из файла, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте. Буду признательна

Решение задачи: «Найти самое длинное слово и определить, сколько раз оно встретилось в тексте»

textual
Листинг программы
static void Main(string[] args)
        {
            Console.Write("Введите путь к файлу: ");
            string path = Console.ReadLine(); //читаем путь к файлу с текстом
            Stack<string> stack = new Stack<string>(); //стек, здесь буду лежать самые длинные слова
            string line = File.ReadAllText(path, Encoding.Default); //читаем весь текст с файла
            string[] words = line.Split(new string[] {" ", "\r\n", "\t"}, StringSplitOptions.RemoveEmptyEntries); //разбиваем строку на массив слов
            int maxlength = 0; //здесь будет храниться длина самого длинного слова
            for (int i = 0; i < words.Length; i++) //цикл, пробегает по массиву слов...
                if (maxlength < words[i].Length) maxlength = words[i].Length; //если длина текущего слова больше запомненной - запоминаем новую длину
            for (int i = 0; i < words.Length; i++) //цикл, выбирает из массива слов, слова максимальной длины
            {
                if (words[i].Length == maxlength && !stack.Contains(words[i])) stack.Push(words[i]); //если длина слова соответствует максимальной, и этого слова нет в стеке - убираем слово в стек
            }
            string[] maxwords = stack.ToArray(); //переводим стек в массив слов максимальной длины
            int count; //здесь хранится число вхождений слова в строку
            for (int i = 0; i < maxwords.Length; i++) //пробегаемся по массиву слов максимальной длины
            {
                count = 0; //обнуляем счетчик для каждого нового слова
                foreach (string x in words) //перебираем исходный массив слов
                {
                    if (x == maxwords[i]) ++count; //если выбранное слово, собвпадает с максимальным - наращиваем счетчик
                }
                Console.WriteLine("{2}. Самое длинное слово: {0}\n   Число вхождений: {1}", maxwords[i], count, i); //выводим результаты
            }
            Console.ReadKey(true); //нажмите любую клавишу для продолжения
        }

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


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

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

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