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