logo search
CSharp_Prog_Guide

Объединение нескольких строк

Имеется несколько способов объединения нескольких строк: перегрузка оператора + для класса String и использование класса StringBuilder. Оператор + удобен в использовании и позволяет сформировать наглядный код, но он работает последовательно. При каждом использовании оператора создается новая строка, поэтому создание цепочки из нескольких операторов неэффективно. Пример.

string two = "two";

string str = "one " + two + " three";

System.Console.WriteLine(str);

Хотя в коде фигурируют четыре строки (три объединяемых строки и одна строка результата, содержащая все три), всего создается пять строк, поскольку сначала объединяются первые две строки, создавая одну результирующую строку. Третья строка присоединяется отдельно, формируя окончательную строку, хранящуюся в str.

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

Пример

В следующем коде используется метод "Append" класса StringBuilder для объединения трех строк без "эффекта цепочки" оператора +.

---

How to: Modify String Contents

Strings are immutable, so it is not possible to modify the contents of string. The contents of a string can, however, be extracted into a non-immutable form, modified, and then formed into a new string instance.

Example

The following example uses the ToCharArray method to extract the contents of a string into an array of the char type. Some of the elements of this array are then modified. The char array is then used to create a new string instance.

class ModifyStrings

{

static void Main()

{

string str = "The quick brown fox jumped over the fence";

System.Console.WriteLine(str);

char[] chars = str.ToCharArray();

int animalIndex = str.IndexOf("fox");

if (animalIndex != -1)

{

chars[animalIndex++] = 'c';

chars[animalIndex++] = 'a';

chars[animalIndex] = 't';

}

string str2 = new string(chars);

System.Console.WriteLine(str2);

}

}

The quick brown fox jumped over the fence

The quick brown cat jumped over the fence