Как правильно сделать форматирование текста?

Обучаюсь в компьютерной академии и нам задали задачу на экзамен. Суть в том что нужно создать типо библиотеку. То есть вводишь название книги и оно должно появится в "Книге", прилагаю фото. Нужно сделать так, чтобы знак "=" не выходил за пределы всех "страниц". На фото видно, что = вылазит за границы


Ответы (1 шт):

Автор решения: InterceptorTSK

У вас максимальная ширина страницы - это 50.

Существует название книги, это строка, у строки есть размер строки Length.

string bookHeaderName = "Введение в .Net";
int bookHeaderLength = bookHeaderName.Length; // 15

Из максимальной ширины страницы вычитаем название. Это 50 минус длина названия книги.

int equalsLength = 50 - bookHeaderLength; // 50 - 15 = 35

Теперь делим сие на два, потому что обрамляющих строк - две.

int equalsLength_2 = equalsLength / 2; // 35 / 2 = 17

Тут есть тонкость, если число не чётное, то нужно учесть остаток. Собираем строку.

string equalsString = new string('=', equalsLength_2);

var sb = new System.Text.StringBuilder(50, 50);
sb.Append(equalsString);
sb.Append(bookHeaderName);
sb.Append(equalsString);

if (equalsLength % 2 != 0)
    sb.Append('=');

Получаем полную строку с названием книги.

string result = sb.ToString();
System.Console.WriteLine(result);

// result
// =================Введение в .Net==================
→ Ссылка