Menu
Coddy logo textTech

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

Часть раздела Основы путешествия по C# на Coddy — урок 63 из 69.

В C# String.Format() — это мощный метод, используемый для создания форматированных строк. Он позволяет объединять текст с переменными понятным и настраиваемым способом. Этот метод использует спецификаторы формата, чтобы определить, как переменные должны быть вставлены в строку.

Давайте узнаем, как использовать форматирование строк в C#:

Базовый синтаксис String.Format() следующий:

string formattedString = String.Format("format_string", arg0, arg1, ...);

Где:

  • format_string: строка, содержащая текст и спецификаторы формата.
  • arg0, arg1, ...: переменные, которые будут вставлены в format_string.

Давайте рассмотрим спецификаторы формата. Числа в фигурных скобках относятся к позиции аргументов:

  • {0}: Ссылается на первый аргумент (arg0)
  • {1}: Ссылается на второй аргумент (arg1)
  • {2}: Ссылается на третий аргумент (arg2)
  • И так далее...

Давайте попробуем простой пример с различными типами аргументов:

string name = "Alice";
int age = 30;
double price = 19.99;

string formatted = String.Format("Name: {0}, Age: {1}, Price: {2}", name, age, price);
Console.WriteLine(formatted);

После выполнения этого кода вы увидите на экране: Name: Alice, Age: 30, Price: 19.99

Вы также можете дополнительно управлять форматированием с помощью спецификаторов формата после двоеточия. Спецификатор формата состоит из буквы (например, F для десятичного числа с фиксированной запятой), за которой следует необязательное число для точности:

// Форматирование числа с 2 знаками после запятой
double number = 123.4567;
string formatted = String.Format("The value is {0:F2}", number);
Console.WriteLine(formatted);

После выполнения этого кода вы увидите на экране: The value is 123.46

Вы можете использовать F1, F2, F3 и т. д. для указания различного количества знаков после запятой

challenge icon

Задание

Легко

Создайте метод с именем CreateFormattedString, который принимает следующие аргументы:

  1. Строку productName.
  2. Целое число quantity.
  3. Число с плавающей точкой (double) unitPrice.

Метод должен возвращать отформатированную строку, объединяющую эти значения в следующем формате:

Product: [productName], Quantity: [quantity], Unit Price: [unitPrice]

Отформатируйте unitPrice до пяти знаков после запятой, quantity с одним знаком после запятой (преобразуйте его в double), а первый символ productName должен быть в верхнем регистре.

Например, если productName равен "laptop", quantity равен 3, а unitPrice равен 1299.9999, метод должен вернуть:

Product: Laptop, Quantity: 3.0, Unit Price: 1299.99990

Чтобы извлечь первый символ, сохраняя его в типе String, а не в типе char, используйте: str.Substring(0,1)

Шпаргалка

Метод String.Format() создает форматированные строки, объединяя текст с переменными с помощью спецификаторов формата.

Базовый синтаксис:

string formattedString = String.Format("format_string", arg0, arg1, ...);

Спецификаторы формата используют фигурные скобки с номерами позиций:

  • {0}: Первый аргумент
  • {1}: Второй аргумент
  • {2}: Третий аргумент

Пример с несколькими типами данных:

string name = "Alice";
int age = 30;
double price = 19.99;

string formatted = String.Format("Name: {0}, Age: {1}, Price: {2}", name, age, price);
Console.WriteLine(formatted); // Вывод: Name: Alice, Age: 30, Price: 19.99

Спецификаторы формата с контролем точности с использованием двоеточия:

double number = 123.4567;
string formatted = String.Format("The value is {0:F2}", number);
Console.WriteLine(formatted); // Вывод: The value is 123.46

Вы можете использовать F1, F2, F3 и т. д., чтобы указать различное количество знаков после запятой

Чтобы извлечь первый символ в виде строки: str.Substring(0,1)

Попробуйте сами

using System;

public class Program {
    public static string CreateFormattedString(string productName, int quantity, double unitPrice) {
        // Напишите свой код здесь
    }

    public static void Main(string[] args) {
        string product = Console.ReadLine();
        int qty = int.Parse(Console.ReadLine());
        double price = double.Parse(Console.ReadLine());
        string formattedString = CreateFormattedString(product, qty, price);
        Console.WriteLine(formattedString);
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы