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

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

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

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

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

textual
Листинг программы
  1. static string Justify(string Text, int Width)
  2. {
  3.     var words = new LinkedList<string>();
  4.     int text_size = 0;
  5.            
  6.     foreach(var w in Text.Split())
  7.     {
  8.         if (w.Length > 0)
  9.         {
  10.             words.AddLast(w);
  11.             text_size += w.Length;
  12.         }
  13.     }
  14.  
  15.     if (words.Count == 0) return new string(' ', Width);
  16.     if (words.Count == 1) return words.First.Value.PadRight(Width, ' ');
  17.  
  18.     int gapeSize = (Width - text_size) / (words.Count - 1);
  19.     int lastGapeSize = (Width - text_size) % (words.Count - 1);
  20.  
  21.     var gape = new string(' ', gapeSize);
  22.     var lastGape = new string(' ', lastGapeSize);
  23.  
  24.     var sb = new StringBuilder();
  25.     for (var w = words.First; w != words.Last; w = w.Next)
  26.     {
  27.         sb.Append(w.Value);
  28.         sb.Append(gape);
  29.     }
  30.  
  31.     sb.Append(lastGape);
  32.     sb.Append(words.Last.Value);
  33.     return sb.ToString();
  34. }
  35.        
  36. static void Main()
  37. {
  38.     int n = 30;
  39.     var format = "<{0}>";
  40.     Console.WriteLine(format, new string('-', n));
  41.     Console.WriteLine(format, Justify("a b c", n));
  42.     Console.WriteLine(format, Justify("aa bb cc", n));
  43.     Console.WriteLine(format, Justify("a", n));
  44.     Console.WriteLine(format, Justify("", n));
  45.  
  46.     Console.ReadKey();
  47. }

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


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

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

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы