Процедура выравнивания заданной строки текста - 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();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д