NickAndNick

Считаем слова в строке и их количество

Dec 9th, 2017
91
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4. using System.Text.RegularExpressions;
  5.  
  6. namespace Example
  7. {
  8.     internal class Program
  9.     {
  10.         private static void Main()
  11.         {
  12.             Console.Write("Введите текст: ");
  13.             var line = Console.ReadLine();
  14.  
  15.             if (!string.IsNullOrEmpty(line))
  16.             {
  17.                 var pattern = new Regex(@"([a-zA-Zа-яА-Я])+");
  18.                 var matches = pattern.Matches(line);
  19.                 var words = matches.Cast<Match>().Select(x => x.ToString().ToLowerInvariant()).ToList();
  20.                 var box = new List<Tuple<string, int>>();
  21.  
  22.                 foreach (var word in words)
  23.                 {
  24.                     if (!box.Exists(x => x.Item1 == word))
  25.                     {
  26.                         box.Add(new Tuple<string, int>(word, 1));
  27.                     }
  28.                     else
  29.                     {
  30.                         var old = box.Find(x => x.Item1 == word);
  31.                         box.Remove(old);
  32.                         var value = old.Item2 + 1;
  33.                         box.Add(new Tuple<string, int>(word, value));
  34.                     }
  35.                 }
  36.  
  37.                 foreach (var value in box)
  38.                 {
  39.                     Console.WriteLine(value.Item1 + " : " + value.Item2);
  40.                 }
  41.             }
  42.             else
  43.             {
  44.                 Console.WriteLine("Пустая строка!");
  45.             }
  46.             Console.ReadKey();
  47.         }
  48.     }
  49. }
RAW Paste Data