0Pricing
C# Academy · Урок

Создание строк

Конкатенация и StringBuilder.

«Создание строк» — бесплатный урок C# Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.

Объединение строк с помощью +

Самый простой способ создать строку — объединить фрагменты оператором +.

Это называется конкатенацией. Такой способ хорошо подходит для небольшого количества фрагментов, например для объединения приветствия с именем.

class Program
{
    static void Main()
    {
        string name = "Sam";
        string greeting = "Hi, " + name;
        System.Console.WriteLine(greeting);
    }
}

Интерполяция строк

Интерполяция — более удобный способ вставлять значения в текст.

Поставьте $ перед строкой и заключите переменные в фигурные скобки. Значения автоматически подставятся на нужные места.

class Program
{
    static void Main()
    {
        string name = "Sam";
        int age = 9;
        System.Console.WriteLine($"{name} is {age}");
    }
}

Стоимость += в циклах

Использовать += для увеличения строки внутри цикла медленно.

Поскольку строки неизменяемы, каждый оператор += создаёт совершенно новую строку и копирует все старые символы. При большом количестве итераций это напрасно расходует время и память.

string result = "";
for (int i = 0; i < 1000; i++)
    result += i; // creates many strings

Знакомство с StringBuilder

StringBuilder предназначен для эффективной сборки текста.

Он находится в пространстве имён System.Text. Вместо создания новой строки при каждом добавлении он увеличивает внутренний буфер, что значительно быстрее при большом количестве добавлений.

using System.Text;

StringBuilder sb = new StringBuilder();

Добавление с помощью StringBuilder

Вызовите Append, чтобы добавить текст в StringBuilder.

Можно добавлять множество фрагментов один за другим. Конструктор хранит всё в своём буфере, пока Вы не запросите итоговую строку.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("Hello");
        sb.Append(", world");
        System.Console.WriteLine(sb.ToString());
    }
}

Получение итоговой строки

Сам объект StringBuilder не является объектом string.

Завершив добавление, вызовите ToString, чтобы получить готовый текст. После этого его можно вывести или сохранить как обычную строку.

using System.Text;
StringBuilder sb = new StringBuilder();
sb.Append("Done");
string final = sb.ToString();

Добавление в цикле

Именно здесь StringBuilder особенно полезен.

Добавляйте текст внутри цикла: конструктор будет эффективно увеличиваться, избегая копирований, которые создавал бы оператор +=. Эта программа создаёт строку из чисел.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 5; i++)
            sb.Append(i);
        System.Console.WriteLine(sb.ToString());
    }
}

AppendLine

AppendLine работает как Append, но также добавляет перевод строки после текста.

Это удобно для создания многострочного вывода, например списка, в котором каждый элемент находится в отдельной строке.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendLine("Line 1");
        sb.AppendLine("Line 2");
        System.Console.Write(sb.ToString());
    }
}

Создание из символов

Можно добавлять и отдельные значения char, а не только целые строки.

Это полезно при преобразовании текста посимвольно, например когда Вы переводите каждую букву в верхний регистр, создавая новый результат.

using System.Text;
class Program
{
    static void Main()
    {
        StringBuilder sb = new StringBuilder();
        foreach (char c in "loud")
            sb.Append(char.ToUpper(c));
        System.Console.WriteLine(sb.ToString());
    }
}

Когда использовать каждый подход

Для небольшого количества фрагментов оператор + или интерполяция понятны и вполне подходят.

Для создания текста в цикле или объединения множества фрагментов выбирайте StringBuilder. Общее правило таково: для небольшого числа объединений используйте операторы, а для большого — конструктор.

string.Join

Если у Вас уже есть набор фрагментов, string.Join объединит их с помощью разделителя.

Сначала передайте разделитель, затем элементы. Для простых списков это лаконичная альтернатива циклу.

string[] parts = { "a", "b", "c" };
string joined = string.Join("-", parts);
// joined is "a-b-c"

Быстрая проверка

Проверьте, насколько хорошо Вы поняли создание строк.

Итоги

Используйте + или интерполяцию для объединения нескольких строк, а string.Join — для списка фрагментов.

Для создания текста в циклах выбирайте StringBuilder: вызывайте Append или AppendLine, а затем ToString, чтобы получить результат. Это позволяет избежать затратных копирований, которые создаёт +=, поскольку строки неизменяемы.

Часто задаваемые вопросы

Урок «Создание строк» бесплатный?

Да — полный текст урока «Создание строк» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.

Чему я научусь в уроке «Создание строк»?

Конкатенация и StringBuilder. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C# Academy?

Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Создание строк»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C# Academy?

Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Тип char
  2. Вспомогательные методы для char
  3. Итерация по строкам
  4. Создание строк
← Назад к C# Academy