Процедура выравнивания заданной строки текста - C#

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

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

Добрый день, изучаю C#, нужно написать код для данной задачи в Visual studio, именно эту задачу я не понимаю совсем Напишите Пожалуйста кто что может Выравнивание строки заключается в том, что между ее отдельными словами дополнительно вносятся пробелы так,чтобы длина строки стала равной заданной длине (предполагается, что требуемая длина не меньше исходной), а последнее слово строки сдвинулось к ее правому краю. Составить процедуру выравнивания заданной строки текста.

Решение задачи: «Процедура выравнивания заданной строки текста»

textual
Листинг программы
static string Justify(string Text, int Width)
{
    var words = new LinkedList<string>();
    int text_size = 0;
            
    foreach(var w in Text.Split())
    {
        if (w.Length > 0)
        {
            words.AddLast(w);
            text_size += w.Length;
        }
    }
 
    if (words.Count == 0) return new string(' ', Width);
    if (words.Count == 1) return words.First.Value.PadRight(Width, ' ');
 
    int gapeSize = (Width - text_size) / (words.Count - 1);
    int lastGapeSize = (Width - text_size) % (words.Count - 1);
 
    var gape = new string(' ', gapeSize);
    var lastGape = new string(' ', lastGapeSize);
 
    var sb = new StringBuilder();
    for (var w = words.First; w != words.Last; w = w.Next)
    {
        sb.Append(w.Value);
        sb.Append(gape);
    }
 
    sb.Append(lastGape);
    sb.Append(words.Last.Value);
    return sb.ToString();
}
        
static void Main()
{
    int n = 30;
    var format = "<{0}>";
    Console.WriteLine(format, new string('-', n));
    Console.WriteLine(format, Justify("a b c", n));
    Console.WriteLine(format, Justify("aa bb cc", n));
    Console.WriteLine(format, Justify("a", n));
    Console.WriteLine(format, Justify("", n));
 
    Console.ReadKey();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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