Найти и исправить слова в тексте - C#
Формулировка задачи:
Дан текст и список слов. Найти в тексте все слова, каждое из которых отличается от некоторого слова из списка одной буквой, и исправить такие слова на слова из списка.
Решение задачи: «Найти и исправить слова в тексте»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using System.Linq; namespace ConsoleApplication207 { internal class Program { private static void Main(string[] args) { var text = "маму мыла раму, а папу мыл аккордеон."; var templates = new List<Template>() { new Template("мама"), new Template("папа") }; CheckText(ref text, templates); Console.WriteLine(text); Console.ReadLine(); } private static void CheckText(ref string text, List<Template> templates) { foreach(Match m in Regex.Matches(text.ToLower(), @"\w+"))//получаем список слов { var word = m.Value; foreach(var template in templates)//перебираем шаблоны if(template.GetDistance(word) == 1)//если одно отличие от шаблона { //делаем замену слова на шаблон text = text.Substring(0, m.Index) + template.Word + text.Substring(m.Index + m.Length); break; } } } } class Template { public string Word { get; set; } public Template(string template) { this.Word = template; } public int GetDistance(string word) { if (word.Length != Word.Length) return 100; var dist = 0; for (int i = 0; i < word.Length; i++) if (Word[i] != word[i]) dist++; return dist; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д