38 lines
1.6 KiB
C#
38 lines
1.6 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
|
|||
|
class Lab3
|
|||
|
{
|
|||
|
public static void Main(string[] args)
|
|||
|
{
|
|||
|
string text = "Вухатий великий синiй слон. Яблуко в саду. Зелене яблуко? Груша. Жовта слива висить у саду!";
|
|||
|
Console.WriteLine(text);
|
|||
|
|
|||
|
// розділяємо текст на окремі речення
|
|||
|
string[] textSplit = text.Split(new[] { '.', '?', '!' }, StringSplitOptions.RemoveEmptyEntries);
|
|||
|
|
|||
|
// обчислюємо кількість слів у кожному реченні та створюємо масив з кількістю слів у реченнях
|
|||
|
int[] amountOfWords = new int[textSplit.Length];
|
|||
|
for (int i = 0; i < textSplit.Length; i++)
|
|||
|
{
|
|||
|
string[] words = textSplit[i].Trim().Split(' ');
|
|||
|
amountOfWords[i] = words.Length;
|
|||
|
}
|
|||
|
|
|||
|
// створюємо Dictionary, де ключ - кількість слів у реченні, а значення - речення
|
|||
|
Dictionary<int, string> sentenceDictionary = new Dictionary<int, string>();
|
|||
|
for (int i = 0; i < textSplit.Length; i++)
|
|||
|
{
|
|||
|
sentenceDictionary.Add(amountOfWords[i], textSplit[i]);
|
|||
|
}
|
|||
|
|
|||
|
// збираємо відсортований текст з Dictionary відсортованих речень
|
|||
|
string sortedText = "";
|
|||
|
foreach (string s in sentenceDictionary.Values)
|
|||
|
{
|
|||
|
sortedText += $"\n{s.Trim()}";
|
|||
|
}
|
|||
|
Console.WriteLine(sortedText);
|
|||
|
Console.ReadLine();
|
|||
|
}
|
|||
|
}
|