Разбиение текста на абзацы, предложения и слова - C#
Формулировка задачи:
привет всем, нужно разбить текст с файла на абзаци и записать абзаци в List, потом с этого List разбить абзаци на предложения и записать их в отдельный List, потом по такой схеме разбить строки на слова и записать это в новый файл
Решение задачи: «Разбиение текста на абзацы, предложения и слова»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
namespace Abzac
{
class Program
{
static void Main(string[] args)
{
string text = @"После появления в мотеле Моники обязанности Тре и Терри свелись к самому малому – необходимости изображать человеческий интерфейс
с постояльцами, которых приходилось принимать и селить в номера.
Принимать гостей приходилось им лично, чтобы избежать неприятных моментов, которые могли возникнуть в связи с оригинальным внешним
видом и запахом, исходящим от Моники.
Постояльцы, в подавляющем большинстве туристы, как правило, средний класс и прибывшие со Среднего Запада,
приезжали в Санта-Круз, соблазнившись низкими ценами, и обычно бывали в первые дни потрясены большим количеством местных молди.
В глубинке, как правило, молди не селились, потому что люди там ненавидели их особенно люто – большинство обитателей Среднего Запада были
«наследниками». Главное слово в жаргоне «наследников», «поджаривать», означало сжигание молди в луже крепкого виски, и впервые это слово
родилось в Айове. «С трюфельным соусом», иногда добавляли некоторые «наследники», имея в виду обгорающие шарики камотного гриба,
прожаривающегося в корчащемся пластике пожираемого пламенем молди и взрывающемся, выбрасывая в воздух психоделические облачка
почерневших спор.
Таким образом, с некоторых пор делом Тре и Терри стало первыми принять постояльцев и быстренько убедить их, что свободный город Санта-Круз
является отличным местом, не таящим в себе никакой угрозы, веселым городком, полным молоденьких студенток, молди, рабочих с окрестных ферм,
серферов и бездомных торчков. Хотя, конечно, цены говорили сами за себя – жизнь была дешевой, и в городке было чем поразвлечься.";
List<string> paragraphs = text.Split(new string[] { "\n\r" }, StringSplitOptions.RemoveEmptyEntries).ToList();
List<string> sentences = new List<string>();
List<string> words = new List<string>();
foreach (string paragraph in paragraphs)
{
sentences.AddRange(paragraph.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries));
foreach (string sentence in sentences)
{
words.AddRange(sentence.Split((new char[] { ' ', ',', '.', '-' })).Where(p=>p.Length > 0));
foreach (string word in words)
{
Console.WriteLine(word);
}
}
}
Console.ReadKey();
}
}
}