Форматирование строк в 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);
Вот такие средства форматирования строк представлены в С#.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.