Помощь в учёбе, очень быстро...
Работаем вместе до победы

Форматирование строк. 
Компьютерные технологии (программирование на C#)

РефератПомощь в написанииУзнать стоимостьмоей работы

Здесь р. — сокращение от «рубль», так как строка формата c указывает, что речь идет о валюте (currency). Строка формата p1 представляет запись целого числа в процентах после умножения на 100. Результатом первой строки должна быть текущая дата, а второй — дата и время. Строками формата являются буквы M и F (от month — месяц и full — полный формат даты и времени). Здесь в квадратных скобках указаны… Читать ещё >

Форматирование строк. Компьютерные технологии (программирование на C#) (реферат, курсовая, диплом, контрольная)

Каждый класс наследует от System. Object и, при необходимости, переопределяет виртуальный метод ToString, обеспечивая текстовое представление своих объектов. Объекты классов ссылочного типа за исключением String возвращают имя своего типа. Классы типов-значений обычно определяют несколько версий метода ToString, обеспечивая разную текстовую форму (format) представления своих объектов. Текстовое представление объектов типов-значений называют в данном контексте форматированием (formatting).

Процесс, обратный форматированию, состоит в лексическом анализе (parsing) текста строки с целью воссоздания объекта.

Методы композиционного форматирования Несколько версий статического метода Format класса String формируют строку из заданных объектов путем композиционного форматирования. Основным параметром метода Format является комбинированная строка. В ней кроме чисто текстовой, комментирующей части находятся так называемые индексированные заполнители (indexed placeholders). Например, код.

int i=13;string s = string. Format («i={0}», i);

C.WriteLine (s);

C.ReadLine ();

вернет строку i=13. Здесь комбинированная строка содержит комментарий i= и индексированный заполнитель {0}. Индексированный заполнитель указывает на то, что объект (в данном случае типа int), стоящий первым (отсюда значение 0 индекса) в последующем списке параметров, должен быть форматирован в строку и эта строка должна быть поставлена на место заполнителя {0}.

Испытайте этот код для объектов разных типов. Замените, например, первую строку кода строкой вида.

object o = new object ();string s = string. Format («o={0}», o);

или.

string s = string. Format («Now {0}», DateTime. Now);

Полезный комментарий. У класса System. DateTime типа-значения (struct) есть статическое свойство Now. Это свойство возвращает объект также типа System.DateTime. Объект, возвращаемый свойством Now, содержит настоящий момент времени.

Испытайте теперь код с другой версией метода Format, где вторым параметром является массив объектов.

int i1 = 1, i2 = 2;

C.WriteLine (string.Format («i1={0};i2={1}», new object[2] {i1, i2}));

Результат i1=1;i2=2.

Замените заполнитель {1} заполнителем {0}. Убедитесь, что результат стал i1=1;i2=1.

В общем случае индексированные заполнители могут иметь вид.

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

Здесь в квадратных скобках указаны не обязательные параметры индексированного заполнителя, которые не использовались в предыдущих примерах:

Параметр «выравнивание» (alignment) должен быть целым числом со знаком или без знака. Значение выравнивания есть требуемое число символов в текстовом представлении выводимого объекта. Если реальное число символов строки больше, то значение выравнивания игнорируется. Если параметр «выравнивание» положительный, то выводимая строка выравнивается по правому полю, если отрицательный — по левому.

Чтобы уяснить роль параметра «выравнивание», наберите строку кода.

C.WriteLine (string.Format («i1=|{0,10}|;i2=|{1,-5}|», new object[2] {i1, i2}));

Результат i1=| 1|;i2=|2 |.

Параметр «строка формата» содержит условные символы, указывающие на форму текстового выражения объекта.

Добавьте строки формата c и p1 в предыдущую строку кода так, чтобы она имела вид C. WriteLine (string.Format («i1=|{0,10:c}|;i2=|{1,-5:p1}|», i1, i2));

(одна из версий метода Format, использованная здесь, допускает в качестве параметров два объекта, а не массив объектов, как в предыдущем примере).

Результатом должна быть строка текста.

i1=| 1,00р.|;i2=|200,0%|.

Здесь р. — сокращение от «рубль», так как строка формата c указывает, что речь идет о валюте (currency). Строка формата p1 представляет запись целого числа в процентах после умножения на 100.

Еще пример

C.WriteLine (string.Format («Today {0:M}», DateTime. Today));

C.WriteLine (string.Format («Now {0:F}», DateTime. Now));

Результатом первой строки должна быть текущая дата, а второй — дата и время. Строками формата являются буквы M и F (от month — месяц и full — полный формат даты и времени).

Строка формата зависит от типа объекта. В частности, для численных типов объекта строка формата имеет вид Axx. Здесь A — так называемый спецификатор формата. Например, если A это символ D или d, то целый тип форматируется в свое обычное цифровое (digital) представление. Необязательное целое число xx в интервале 0.99, может следовать за спецификатором формата. Оно определяет требуемое число значащих цифр. Например, d5 указывает, что выводимым параметром должно быть целое число с пятью значащими цифрами. Для вывода вещественных чисел спецификаторами формата являются символы F или f (float) и e или E (exponent).

Испытайте разные строки формата, набрав, например, строки кода.

C.WriteLine («Число пи={0}», Math. PI);

C.WriteLine («Число пи={0:g}», Math. PI);

и, заменяя, затем, спецификатор g другими строками формата, скажем f10, F2, e15, E0.

Обратите внимание в частности на то, что спецификатор формата g (general) используется по умолчанию, то есть в том случае, когда строка формата опущена. То же и в формате объектов типа DateTime.

Из последнего примера видно, что комбинированную строку и список форматируемых объектов можно использовать не только в качестве параметров метода Format, но и метода WriteLine класса Console. Класс StringBuilder также имеет несколько версий метода форматирования AppendFormat.

Показать весь текст
Заполнить форму текущей работой