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

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

В общем виде параметр задается следующим образом:

{n [, m[:спецификатор_формата]]}

Здесь n — номер параметра. Параметры нумеруются с нуля, нулевой параметр заменяется значением первой переменной из списка вывода, первый параметр — второй переменной и т. д. Параметр m определяет минимальную ширину поля, которое отводится под выводимое значение. Если выводимому числу достаточно меньшего количества позиций, неиспользуемые позиции заполняются пробела­ми. Если числу требуется больше позиций, параметр игнорируется. Спецификатор формата, как явствует из его названия, определяет формат вы­вода значения. Например, спецификатор С (Currency) означает, что параметр должен форматироваться как валюта с учетом национальных особенностей пред­ставления, а спецификатор X (Hexadecimal) задает шестнадцатеричную форму представления выводимого значения.

ПРИМЕЧАНИЕ

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

В операторе 5 используются так называемые пользовательские шаблоны формати­рования. Если приглядеться, в них нет ничего сложного: после двоеточия задается вид выводимого значения посимвольно, причем на месте каждого символа может стоять либо #, либо 0. Если указан знак #, на этом месте будет выведена цифра числа, если она не равна нулю. Если указан 0, будет выведена любая цифра, в том числе и 0. В табл. 6.4 приведены примеры шаблонов и результатов вывода.

Таблица 6.4. Примеры применения пользовательских шаблонов форматирования

double a = 12.234;

int b = 29;

MessageBox.Show(string.Format((" a = {0,6:C} b = {1,2:X}", a, b)); // 4

MessageBox.Show(string.Format((" a = {0,6:0.##} b = {1,5:0.# ' руб. '}", a, b));

Будет выдано:

а = 12,23р. b = 1D

а = 12,23 b = 29.0 ' руб. '

double a = 12.234;

MessageBox.Show(string.Format("{0, 6:00.00}", a));

Число Шаблон Вид

1,243 00.00 01,24

1,243 #.## 1,24

0,1 00.00 00,10

0,1 #.##,1

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: