Menu
Coddy logo textTech

Formatowanie ciągów znaków

Część sekcji Podstawy ścieżki C# w Coddy. Lekcja 63 z 69.

W języku C# String.Format() to potężna metoda służąca do tworzenia sformatowanych ciągów znaków. Pozwala łączyć tekst ze zmiennymi w czytelny i dostosowywalny sposób. Metoda ta używa specyfikatorów formatu, aby określić, jak zmienne powinny być wstawiane do ciągu znaków.

Dowiedzmy się, jak używać formatowania ciągów znaków w języku C#:

Podstawowa składnia String.Format() wygląda następująco:

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

Gdzie:

  • format_string: Ciąg znaków zawierający tekst i specyfikatory formatu.
  • arg0, arg1, ...: Zmienne, które zostaną wstawione do format_string.

Przyjrzyjmy się specyfikatorom formatu. Liczby w nawiasach klamrowych odnoszą się do pozycji argumentów:

  • {0}: Odnosi się do pierwszego argumentu (arg0)
  • {1}: Odnosi się do drugiego argumentu (arg1)
  • {2}: Odnosi się do trzeciego argumentu (arg2)
  • I tak dalej...

Wypróbujmy prosty przykład z różnymi typami argumentów:

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);

Po wykonaniu tego kodu zobaczysz na ekranie: Name: Alice, Age: 30, Price: 19.99

Możesz też dodatkowo kontrolować formatowanie za pomocą specyfikatorów formatu umieszczanych po dwukropku. Specyfikator formatu składa się z litery (takiej jak F w przypadku zapisu dziesiętnego ze stałą liczbą miejsc po przecinku), po której może opcjonalnie występować liczba określająca precyzję:

// Sformatuj liczbę do 2 miejsc po przecinku
double number = 123.4567;
string formatted = String.Format("The value is {0:F2}", number);
Console.WriteLine(formatted);

Po wykonaniu tego kodu zobaczysz na ekranie: The value is 123.46

Możesz użyć F1, F2, F3 itd., aby określić różną liczbę miejsc po przecinku

challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie CreateFormattedString, która przyjmuje następujące argumenty:

  1. Ciąg znaków productName.
  2. Liczbę całkowitą quantity.
  3. Liczbę typu double unitPrice.

Metoda powinna zwracać sformatowany ciąg znaków łączący te wartości w następującym formacie:

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

Sformatuj unitPrice do pięciu miejsc po przecinku, quantity do jednego miejsca po przecinku (konwertując ją na double), a pierwsza litera productName powinna być wielka.

Na przykład, jeśli productName to "laptop", quantity wynosi 3, a unitPrice wynosi 1299.9999, metoda powinna zwrócić:

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

Aby wyodrębnić pierwszy znak, zachowując typ String zamiast typu char, użyj: str.Substring(0,1)

Spróbuj swoich sił

using System;

public class Program {
    public static string CreateFormattedString(string productName, int quantity, double unitPrice) {
        // Wpisz tutaj swój kod
    }

    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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator C# online