Урок 18. Создание строк с помощью String.Format C#
Все уроки по C# расположены здесь.
В этой статье описывается метод Format класса String, который позволяет создавать строки, содержащие текст и числа.
Функция Format - это статический метод класса String. Он позволяет генерировать строки, которые содержат текстовую информацию и вставленные данные. Это идеально для вывода информации пользователю. Метод Format требует нескольких аргументов. Первый - строка шаблона. Шаблон содержит текст, необходимый в последней строке, и один или несколько заполнителей, которые будут заменены другими значениями. Остальные параметры - это переменные или литералы для вставки в шаблон.
Примечание: переменные или литералы могут быть любого типа данных, включая числовые данные, строки и объекты. Для этой статьи мы будем использовать числовые данные.
Шаблоны и заполнители
Как сказано выше, строка шаблона должна содержать заполнители, определяющие место вставки значений. Каждый заполнитель состоит из числа в фигурных скобках {}. Число - это индекс, который ссылается на один из других параметров, передаваемых методу Format. Индекс первого параметра, не являющегося шаблоном, равен нулю. Пример ниже может проиллюстрировать это.
using System; class Program { static void Main(){ string output; int selection = 5; output = string.Format("Вы выбрали {0} предмет из списка.", selection); Console.WriteLine(output); // выведет: Вы выбрали 5 предмет из списка } }В примере строка шаблона содержит один заполнитель. Число между фигурными скобками равно нулю, что означает, что первый параметр после шаблона должен использоваться в качестве замены для заполнителя. В этом случае значение переменной "selection". Однако метод Format не ограничивается включением только одного параметра после шаблона. В следующем примере показаны два заполнителя.
using System; class Program { static void Main(){ string output; int selection = 5; int count = 10; output = string.Format("Вы выбрали {0} предмет из {1}.", selection, count); Console.WriteLine(output); // Выведет "Вы выбрали 5 предмет из 10." } }Числовое форматирование
При вставке чисел в строки с помощью String.Format, числа могут быть отформатированы путем добавления спецификаторов формата в пределах местозаполнителей. Доступные спецификаторы формата такие же, как для метода ToString числовых типов данных.
Чтобы включить описатель формата, после номера индекса-заполнителя вставляется двоеточие (:). Затем спецификатор добавляется перед закрывающей скобкой. В следующем примере показан один и тот же параметр, используемый двумя заполнителями. Один использует форматирование, другой - нет.
using System; class Program { static void Main(){ string output; int value = 100; output = string.Format("decimal {0} = {0:X} hex.", value); Console.WriteLine(output); // Выведет decimal 100 = 64 hex. } }Включение фигурных скобок в шаблоны
В некоторых случаях может потребоваться, чтобы символы фигурных скобок в строке шаблона были включены в выходную строку. Если вы это сделаете, добавьте два символа скобки, где вы хотите один в результате.
using System; class Program { static void Main(){ string output; int value = 100; output = string.Format("{{decimal {0} = {0:X} hex.}}", value); Console.WriteLine(output); // Выведет {decimal 100 = 64 hex.} } }Метод Console.WriteLine
В начале урока метод Console.WriteLine был использован для вывода текста. Console.WriteLine использует те же функции, что и string.Format при генерации выводимой строки. Приведенный выше пример можно упростить следующим образом
using System; class Program { static void Main(){ int value = 100; Console.WriteLine("{{decimal {0} = {0:X} hex.}}", value); } }
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.