Заменить повторы слов точками. Пояснения к коду - C#

Узнай цену своей работы

Формулировка задачи:

/* Дан текст не более 255 символов. Слова отделяются друг от друга пробелами. * Заменить повторно встречающиеся слова тремя точками. */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
/* Дан текст не более 255 символов. Слова отделяются друг от друга пробелами. 
 * Заменить повторно встречающиеся слова тремя точками. 
 */
 
namespace Task2
{
    class Program
    {
        static string text =
            "Знаменательные слова — обозначающие определённые понятия (существительное, прилагательное, глагол, наречие)\n" +
            "Служебные слова — служащие для связи слов между собой (союз, предлог, частица, артикль и др)";
        static void Main(string[] args)
        {
            Console.WriteLine(text);
            string[] words = text.Split(new Char[]{' '});
 
            for (int i = 0; i < words.Length - 1; i++)
                for (int j = i + 1; j < words.Length; j++)
                    if (words[i] == words[j] && words[i].Length > 1) words[j] = "...";
            
            text = "\n";
            foreach (string str in words)
                text += str + " ";
 
            Console.WriteLine(text);
            Console.ReadKey();
        }
    }
}
Вот эту часть кода объясните, пожалуйста.
Console.WriteLine(text);
            string[] words = text.Split(new Char[]{' '});
 
            for (int i = 0; i < words.Length - 1; i++)
                for (int j = i + 1; j < words.Length; j++)
                    if (words[i] == words[j] && words[i].Length > 1) words[j] = "...";
            
            text = "\n";
            foreach (string str in words)
                text += str + " ";
 
            Console.WriteLine(text);
            Console.ReadKey();

Решение задачи: «Заменить повторы слов точками. Пояснения к коду»

textual
Листинг программы
Console.WriteLine(text);
            string[] words = text.Split(new Char[]{' '}); // Разбиваем строку на массив строк, разделенных пробелами
 
            for (int i = 0; i < words.Length - 1; i++) 
                for (int j = i + 1; j < words.Length; j++)
                    if (words[i] == words[j] && words[i].Length > 1) words[j] = "..."; // Если первая строка равна второй и
                                                                                      // длина первой строки больше 1, заменяем
                                                                                      // 2 строку "..."
            text = "\n";
            foreach (string str in words)
                text += str + " "; // Все элементы массива words собираем в одну строку 
 
            Console.WriteLine(text);
            Console.ReadKey();

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы