Advertisement
osence

OOP 1

Oct 27th, 2020
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.00 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using System.Linq;
  3.  
  4. namespace TextAnalysis
  5. {
  6.     static class SentencesParserTask
  7.     {
  8.         public static List<List<string>> ParseSentences(string text)
  9.         {
  10.             char[] expressionsForLines = { '.', '!', '?', ';', ':', '(', ')' };
  11.             var sentencesList = new List<List<string>>();
  12.             List<string> lines = text.Split(expressionsForLines).ToList();
  13.             int lineCounter = 0;
  14.             foreach (var line in lines)
  15.             {
  16.                 bool lineIsEmpty = true;
  17.                 int wordCounter = 0;
  18.                 int charCounter = 0;
  19.  
  20.                 for (int i = 0; i < line.Length; i++)
  21.                 {
  22.                     if ((char.IsLetter(line[i])) || (line[i] == '\''))
  23.                     {
  24.                         lineIsEmpty = false;
  25.                         charCounter = i;
  26.                         break;  
  27.                     }
  28.                 }
  29.                 if (lineIsEmpty) continue;
  30.                 sentencesList.Add(new List<string>());
  31.                 bool wordIsEmpty = true;
  32.                 for (int i = charCounter; i < line.Length; i++)
  33.                 {
  34.                     if ((char.IsLetter(line[i])) || (line[i] == '\''))
  35.                     {
  36.                         if (sentencesList[lineCounter].Count == wordCounter)
  37.                         {
  38.                             sentencesList[lineCounter].Add("");
  39.                             wordIsEmpty = false;
  40.                         }
  41.                         sentencesList[lineCounter][wordCounter] += char.ToLower(line[i]);
  42.                     }
  43.                     else if (wordIsEmpty)
  44.                     {
  45.                         continue;
  46.                     }
  47.                     else
  48.                     {
  49.                         wordCounter++;
  50.                         wordIsEmpty = true;
  51.                     }
  52.                 }
  53.                 lineCounter++;
  54.             }
  55.             return sentencesList;
  56.         }
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement