- •Глава 9. Многомерные массивы
- •9.1 Прямоугольные массивы
- •9.1.1 Объявления и инициализация
- •9.1.2 Примеры
- •9.2 Ступенчатые массивы
- •9.2.1 Объявления и инициализация
- •9.2.2 Примеры
- •9.3 Оператор цикла с перебором foreach
- •9.4 Массивы с числом размерностей больше двух
- •Контрольные вопросы
- •Варианты заданий для самостоятельной работы
- •Глава 10. Исключительные ситуации
- •10.1 Основные понятия
- •10.2 Механизм обработки исключений
- •10.3 Примеры обработки исключений
- •10.4 Оператор throw
- •10.5 Дополнительные сведения
- •Контрольные вопросы
- •Варианты заданий для самостоятельной работы
- •Глава 11. Обработка текстовой информации
- •11.1 Символьный тип char
- •11.2 Массив символов
- •11.3 Тип String
- •11.4 Класс StringBuilder
- •11.5 Форматирование строк
- •Контрольные вопросы
- •Варианты заданий для самостоятельной работы
11.5 Форматирование строк
В предыдущих темах для вывода информации о результатах работы программы использовались наиболее простые преобразования данных. Например, такое:
Console.Write(" " + x[i]),
где элемент числового массива в результате неявного преобразования в строковый тип и объединения со строкой из двух пробелов выводится на экран.
А оператор
Console.WriteLine ( "х={0} у={1} s={2}", х, у, s);
использует форматный вывод. При этом оператор вывода содержит более одного параметра. Первым параметром методу передается строковый литерал, содержащий помимо обычных символов, предназначенных для вывода на консоль, параметры в фигурных скобках.
Параметры нумеруются с нуля, перед выводом они заменяются значениями соответствующих переменных в списке вывода: нулевой параметр заменяется значением первой переменной (в данном примере – х), первый параметр–второй переменной (в данном примере–у), второй параметр–значением переменнойs.
После номера параметра можно задать минимальную ширину поля вывода, а также указать спецификатор формата, который определяет форму представления выводимого значения.
В общем виде формат задается следующим образом:
{n[,m[:спецификатор_формата[число]]}
Здесь n–номер параметра. Параметрmопределяет минимальную ширину поля, которое отводится под выводимое значение. Если выводимому числу достаточно меньшего количества позиций, неиспользуемые позиции заполняются пробелами. Если числу требуется больше позиций, параметр игнорируется.
Спецификатор формата (табл.11.4) используются для форматирования арифметических типов при их преобразовании в строковое представление.
Листинг 7
using System;
using System.Text;
namespace ConsoleApplication1
{ class Program
{ static void Main()
{ int k = 342;
double w=0.3456;
Console. WriteLine( k. ToString( "C" ) );
Console. WriteLine( k. ToString( "D" ) );
Console.WriteLine(k.ToString("e"));
Console. WriteLine( k. ToString( "G" ) );
Console. WriteLine( "{0,6:r}", w );
Console. WriteLine( "{0,6:0.##}", w );
}
}
}
Результат работы программы:
В последнем выводе используется пользовательский шаблон форматирования:после двоеточия задан вид выводимого значения посимвольно. Если указан знак #, на этом месте будет выведена цифра числа, если она не равна нулю. Если указан 0, будет выведена любая цифра, в том числе и 0.
Таблица 11.4 – Спецификаторы формата для строк
Спецификатор |
Описание |
С или с |
Вывод значений в денежном формате. По умолчанию перед выводимым значением подставляется символ доллара ($). Непосредственно после спецификатора можно задать целое число, определяющее длину дробной части |
D или d |
Вывод целых значений. Непосредственно после спецификатора можно задать целое число, определяющее ширину поля вывода. Недостающие места заполняются нулями |
Е или е |
Вывод значений в экспоненциальном формате. Непосредственно после спецификатора можно задать целое число, определяющее длину дробной части. Минимальная длина порядка – 3 символа |
F или f |
Вывод значений с фиксированной точностью. Непосредственно после спецификатора можно задать целое число, определяющее длину дробной части |
G или g |
Формат общего вида. Применяется для вывода значений с фиксированной точностью или в экспоненциальном формате в зависимости от того, какой формат требует меньшего количества позиций. Для различных типов величин по умолчанию используется разная ширина вывода, например, для single - 7 позиций, для byte и sbyte - 3, для decimal – 29 |
N или n |
Вывод значений в формате d, ddd, ddd. ddd..., то есть группы разрядов разделяются разделителями, соответствующими региональным настройкам. Непосредственно после спецификации можно задать целое число, определяющее длину дробной части |
Р или р |
Вывод числа в процентном формате (число, умноженное на 100, после которого выводится знак %) |
Rилиr |
Отмена округления числа при преобразовании в строку |
X или х |
Вывод значений в шестнадцатеричном формате |
Пользовательский шаблон может также содержать текст, который в общем случае заключается в апострофы.