Форматированный вывод

Сегодня поговорим о форматированном выводе, который позволит выводить информацию в правильном виде в консоль, а также форматировать строки внутри самой программы.

Один из часто встречающихся выводов в консоль которые мы видели, имел вид как в примере ниже:

string site = "nookery ";
string str = "it's fun!";

Console.WriteLine(site + str);

Но когда вы начнете работу с html кодом или с xml файлами которые содержат большое количество кода, такой подход будет не верный. Ну представьте себе вы получаете строку с текстом в 10-20 предложений, в котором вам необходимо вносить какие то изменения в разные места текста, числа или добавлять свой текст. Вам бы пришлось сделать что то подобное.

Console.WriteLine(htmlText + str+htmlText2+str);

Помимо того, что это как минимум не эстетично, так еще и не практично. Есть еще и другой не мало важный фактор, к примеру вы имеете денежные суммы, при которых вам необходимо либо округлять в конечно выводе, который представлял в дальнейшем некий шаблон, при использовании которого у вас не получились суммы 10.67343 рублей, у нас ведь нет денежной единицы меньше чем копейка, но при расчетах программы возможно получить такой результат. Если вы сейчас да же не поняли к чему я виду разговор, обещаю вам что к концу статьи вы разберетесь в этом.

Возьмем за основы пример выше и попробуем его форматировать в шаблонный вид.

string site = "nookery ";
string str = "it's fun!";

Console.WriteLine(site + str);
Console.WriteLine("{0}{1}", site, str);

Как мы видим, вывод программы не изменился, однако изменился код, что мы видим, у нас имеются два параметра и аргумента, которые передаются в свои параметры и выводятся в консоль. А теперь давайте возьмем второй пример и попробуем его изменить.

Console.WriteLine(htmlText + "{0}" + htmlText2 + "{0}", str);

Видите как все просто, теперь у нас сформировался некий шаблон, при котором нам достаточно изменять значения переменной str, которое будет выводиться в нужных нам местах текста.

Такой подход можно применять не только для консоли, но и для строки в целом, если посмотрите пример ниже поймете как это можно сделать:

string text= string.Format(htmlText + "{0}" + htmlText2 + "{0}", str);

Форматированный вывод позволяет настроить точность округления, рассмотрим примеры ниже:

Console.WriteLine("{0:0.000} {1:0.0000}", 1.23456, 1.23456); // 1,235 1,2346

//Вывод завершающих нулей
Console.WriteLine("{0:0.000} {1:0.###}", 1.2, 1.2); // 1,200 1,2

//Добивание нулями слева
Console.WriteLine("{0:D4}", 42); //0042

Пример который находиться ниже позволит, создать табличный вариант отображения информации в консоли, а также его выравнивание по краям:

//Разбиение на колонки и выравнивание по правому
Console.WriteLine("{0,10}|\n{1,10}|", 12345, 123);
//12345|
//   123|

//или левому краю
Console.WriteLine("{0,-10}|\n{1,-10}|", 12345, 123);
// 12345	|
// 123		|

//А также комбинации выравнивания и округления
Console.WriteLine("{0,10:0.00}|\n{1,10:0.000}|", 1.45, 21.345);
//    1,45|
// 21,345|

В последнем примере рассмотрим вариант форматировании времени и даты:

//Форматирование времени и даты
Console.WriteLine("{0:hh:mm:ss}", DateTime.Now); // 06:01:54

// MM и mm — это Месяцы и минуты. Различаются только регистром.
Console.WriteLine("{0:yy-MM-dd}", DateTime.Now); // 17-07-19

// Можно менять количество букв и порядок:
Console.WriteLine("{0:d-MM-yyyy}", DateTime.Now); // 1-12-2014

 

 

Обновлено: 05.01.2018 — 18:28

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.