- •4. Ввод-вывод
- •4.1. Консольный ввод-вывод
- •4.1.1. Ввод и вывод с помощью классаConsole
- •4.1.2. Методы классаSystem.Console
- •Перечисление System.ConsoleKey
- •Структура System.ConsoleKeyInfo
- •Перечисление ConsoleModifiers
- •4.2. Форматирование строк
- •{Index[,length][:format]}
- •4.2.1. Строки стандартных числовых форматов
- •4.2.2. Строки настраиваемых числовых форматов
- •4.2.3. Форматирование с помощью управляющих последовательностей
- •4.3. Ввод-вывод с использованием графического интерфейса
- •4.3.1. Ввод-вывод с использованием элементов управления
- •4.3.2. Использование стандартного окна MessageBox для вывода сообщений
4.2. Форматирование строк
(http://msdn.microsoft.com/ru-ru/library/26etazsy.aspx)
Для элемента формата используется следующий синтаксис:
{Index[,length][:format]}
Таблица 4.5. Составляющие элемента форматирования
Элемент |
Описание |
index |
Номер форматируемого объекта (отсчитываемый от нуля) в списке параметров метода. Если объект, указанный параметром index, имеет значениеnull, элемент формата заменяется наString.Empty(пустую строку). |
length |
Минимальное количество знаков в строковом представлении параметра. Если значение положительное, то параметр выравнивается по правому краю; а если отрицательное, то – по левому краю. |
format |
Стандартная или пользовательская настраиваемая строка форматирования (п.п.4.2.1, 4.2.2), которая поддерживается форматируемым объектом. Возможные значения для параметра formatсовпадают со значениями, поддерживаемыми методомToStringданного объекта. Еслиformatне указан, то в качестве него передаетсяnull. |
4.2.1. Строки стандартных числовых форматов
Структура строк формата: Axx,
гдеA– спецификатор формата, аxx– спецификатор точности (необязателен).
Например:
Console.WriteLine("На счет поступила сумма {0:с}", 9.99);
Вывод:
На счет поступила сумма 9,99р.
или
На счет поступила сумма $9.99
Таблица 4.6. Спецификаторы стандартных числовых форматов (http://msdn.microsoft.com/ru-ru/library/dwhawy9k.aspx)
Спецификатор |
Влияние на формат |
Пример |
Вывод |
Силис |
Выводит число в денежном формате. Описатель точности определяет количество цифр дробной части |
Console.Write("{0:C}", 12.345); Console.Write("{0:C3}", -12.34); |
$12.35 ($12.340) |
Dилиd |
Выводит целое число. Описатель точности определяет минималь-ное число выводимых цифр (по умолчанию – min) |
Console.Write("{0:D}", 123); Console.Write("{0:D5}", -123); |
123 -00123 |
Еилие |
Выводит вещест-венное число в экспоненциальном (научном) формате. Описатель точности определяет количество цифр дробной части (по умолчанию – 6) |
Console.Write("{0:E}", 123000); Console.Write("{0:E3}", 123000); |
1.230000E+005 1.230E+005 |
Fилиf |
Выводит вещественное число в формате с фик-сированной точкой. Описатель точности определяет количество цифр дробной части |
Console.Write("{0:F0}", 12); Console.Write("{0:F4}", 12.34); |
12 12.3400 |
Gилиg |
Выводит вещественное число в наиболее ком-пактной записи из двух вариантов: экспонен-циального и с фикси-рованной запятой. Описатель точности определяет количество значащих цифр (по умолчанию: Byte, SByte – 3 зн., Int16, UInt16 – 5 зн., Int32, UInt32 – 10 зн., Int64 – 19 зн., UInt64 – 20 зн., Single (float) – 7 зн., Double – 15 зн., Decimal – 29 зн.) |
Console.Write("{0:G}", 12.34); Console.Write("{0:G4}", 12.345); Console.Write("{0:G}", 1.20E-9); |
12.34 12.34 1.2E-9 |
Nилиn |
Выводит число с разделителями тысяч (в целой и дробной частях). Описатель точности определяет количество цифр дробной части |
Console.Write("{0:N}", 1234.56); |
1,234.56 или 1 234.56 (в зависимости от настроек) |
Pилиp |
Выводит число, умноженное на 100 и отображаемое с символом процента. Описатель точности определяет количество цифр дробной части |
Console.Write("{0:P}", 1); Console.Write("{0:P1}", 0.2345); |
100.00 % 23.5 % |
Rилиr |
Выводит строковое представление числа |
Console.Write("{0:R}", 123.456); |
123.456 |
Xилиx |
Выводит целое число в шестнадцатеричном формате. Описатель точности определяет количество выводимых знаков |
Console.Write("{0:X}", 255); Console.Write("{0:x4}", 255); Console.Write("{0:X4}", -1); |
FF 00ff 00FF |
Использование элемента форматирования для вставки значения валюты в строку:
decimal balance = 123.456;
Console.WriteLine("Остаток на счете: {0:C2}", balance);
// Вывод:
// Остаток на счете: $123.46
Форматирование числового значения в качестве строки со значением валюты с использованием текущего языка и региональных параметров (в примере это "en-US").
decimal balance = 123.456;
Console.WriteLine("Остаток на счете: ", balance.ToString("C2"));
// Вывод:
// Остаток на счете: $123.46
Пример 4.4. Форматирование выводимых числовых значений. В методе String.Formatстрока формата содержит два элемента форматирования: один – для отображения десятичного значения числа, а другой – его шестнадцатеричного значения.
public class Example
{ public static void Main()
{short[] arrVal = {Int16.MinValue, -29, 0, 1044, Int16.MaxValue};
Console.WriteLine("{0,8} {1,8}", "Decimal", "Hex");
foreach (short value in arrVal)
{ string fs = String.Format("{0,8:G} {0,8:X}", value);
Console.WriteLine(fs);
}
}
}
/* Вывод:
Decimal Hex
-32768 8000
-29 FFE3
0 0
1044 414
32767 7FFF
*/