В библиотеке .NET очень хорошо реализована работа со строками. Такие классы как StringBuilder и String существенно облегчают жизнь простому программисту. Одной очень важной функцией класса String, является функция Format. Эта функция аналогична функции sprintf из языка C++. Суть функции заключается в том, чтобы сформировать строку из нескольких составляющих и с определенным форматированием. В качестве составляющих могут выступать типы строк, различные форматы чисел, даты и перечисления. Визуально, код, написанный с помощью метода Format, читается легче. Библиотека .NET предоставляет программисту довольно большой выбор типов форматирования. Давайте вкратце познакомимся с принципом использования метода Format, а в конце статьи я приведу сводную таблицу всех типов форматирования.
Итак, синтаксис метода Format следующий:
String.Format(строка содержащая шаблон, param[] аргумент)
param[] говорит методу, что он может принимать неограниченное количество аргументов, разделенных запятой. На примере это выглядит так:
String.Format(“{0} {1}”, “Привет”, “всем”);
Вернет строку «Привет всем». В фигурных скобках указываются индексы полей, которые передаются, начиная с нуля. «Привет» – нулевое поле, «всем» – первое поле. В самих фигурных скобках, кроме форматирования через запятую можно указывать тип или, другими словами, как форматировать данное поле. Следующий пример форматирует нулевое поле:
Console.WriteLine(String.Format("{0,10}:{1}","Привет","всем"));
Console.WriteLine(String.Format("{0,-10}:{1}", "Привет", "всем"));
1 |
Console.WriteLine(String.Format("{0,10}:{1}","Привет","всем")); |
2 |
Console.WriteLine(String.Format("{0,-10}:{1}", "Привет", "всем")); |
1 |
Console.WriteLine(String.Format("{0:c}",12.53)); |
2 |
Console.WriteLine(String.Format("{0:e}",12.53)); |
3 |
Console.WriteLine(String.Format("{0:f}", 12.53)); |
4 |
Console.WriteLine(String.Format("{0:x4}", 12)); |
1 |
Console.WriteLine(String.Format("{0:00.0000}", 12.53)); |
2 |
Console.WriteLine(String.Format("{0:(#).##}", 12.53)); |
3 |
Console.WriteLine(String.Format("{0:0,0}", 12.53)); |
4 |
Console.WriteLine(String.Format("{0:000.0}", 12.53)); |
5 |
Console.WriteLine(String.Format("{0:0,0%}", 12.53)); |
6 |
Console.WriteLine(String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 12.53)); |
7 |
Console.WriteLine(String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 1245.53)); |