Форматирование строк в C#

Форматирование строк в C#

Форматирование строк в C#

Форматирование строк — это одна из самых частых операций. Поэтому в
C#, как и в любом другом языке программирования, операциям форматирования строк
уделено отдельное внимание.

Форматированный вывод строк в C# возможно при выводе строк с помощью следующих методов:
string.Format, Console.WriteLine или StringBuilder.AppendFormat.
В качестве входных данных эти методы принимают список объектов и строку, состоящую из элементов форматирования.

Сам элемент форматирования представлен в следующем формате:



{индекс[,выравнивание][:спецификатор формата]}



Индекс — это порядковый номер объекта из списка, переданного в качестве второго аргумента в методы:
string.Format, Console.WriteLine или StringBuilder.AppendFormat.

Выравнивания (длина) — является необязательным компонентом. Это минимальное количество символов в строковом представлении параметра. Если параметр положительный, он выравнивается по правому краю; если отрицательный, он выравнивается по левому краю.

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

Примеры форматирования строк в C#

В примере ниже строки форматируются тремя разными способами.



using System.Text;



var text = string.Format("Кол-во книг равно {0}", 10);

Console.WriteLine(text);



Console.WriteLine("Кол-во книг равно {0}", 10);



var builder = new StringBuilder();

builder.AppendFormat("Кол-во книг равно {0}", 10);

Console.WriteLine(builder);



Форматировать строки можно и вот таким образом:



int books = 2;

int journlas = 4;

int notebooks = 3;



string str1 = "У Вас есть {0} журнала, {1} книги и {2} тетради";

string str2 = "У Вас есть {0} книги, {1}  журнала и {2} тетрадей";



Console.WriteLine(str1, journlas, books, notebooks);

Console.WriteLine(str2, books, journlas, notebooks);



Форматирование числовых данных в C#

В следующем примере рассмотрим как можно форматировать числовые данные в C#.



Console.WriteLine("{0}  {1, 12}", "десятичный", "шестнадцатеричный");



Console.WriteLine("{0:D}  {1,8:X}", 100, 100);

Console.WriteLine("{0:D}  {1,8:X}", 231, 321);

Console.WriteLine("{0:D}  {1,8:X}", 101, 145);



Мы выводим числа в десятичном и шестнадцатеричном формате, а также выравниваем их используя компонент выравнивания — 8.

Спецификатор {0:D} указывает, что первый элемент из списка предоставляемых объектов будет взят и отформатирован в десятичном формате. Спецификатор {1,8:X} форматирует второй элемент в шестнадцатеричном формате — :X, а длина строки будет составлять 8 символов. И поскольку число состоит всего из трех символов, оно выровнено по правому краю и дополнено пустыми строками.

А теперь рассмотрим как использовать другие спецификаторы форматирования чисел:



Console.WriteLine("Число: {0:N}", 115);

Console.WriteLine("Научное: {0:E}", 115);

Console.WriteLine("Валюта: {0:C}", 115);

Console.WriteLine("Процент: {0:P}", 115);

Console.WriteLine("Шестнадцатеричное: {0:X}", 115);



Форматирование строк в C# с выравниваем

Выравнивание — это минимальное количество символов, которые должны быть записаны в выходные данные. Если мы используем {0,16}, выходные данные будут выровнены по правому краю. Для выравнивания по левому краю нужно указать поле следующее выравнивание: {0,-16}.



Console.WriteLine(10);

Console.WriteLine(122);

Console.WriteLine(1876);

Console.WriteLine(17352);

Console.WriteLine(239292);



Console.WriteLine("{0,16}", 10);

Console.WriteLine("{0,16}", 122);

Console.WriteLine("{0,16}", 1876);

Console.WriteLine("{0,16}", 17352);

Console.WriteLine("{0,16}", 239292);



Сначала мы печатаем пять чисел без указания длины. Длина выходных данных равна количеству отображаемых символов. Во втором случае у нас есть длина, равная 16. Каждое из пяти выводимых чисел имеет минимальную длину в шестнадцать символов и числа выровнены по правому краю.

Форматирование даты и времени в C#

В следующем примере мы рассмотрим как форматировать дату и время в С# с помощью указанных форматов:



var now = DateTime.Now;



Console.WriteLine("Короткая дата: {0:d}", now);

Console.WriteLine("Длинная дата: {0:D}", now);

Console.WriteLine("Короткое время: {0:t}", now);

Console.WriteLine("Длинное время: {0:T}", now);

Console.WriteLine("Месяц: {0:M}", now);

Console.WriteLine("Год: {0:Y}", now);



Вот такие средства форматирования строк представлены в С#.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий