Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
20.05.2015
Размер:
271.36 Кб
Скачать

Работа со строками в c#

По аналогии с массивами все строки в C# происходят от одного базового класса - System.String, в котором реализовано достаточно много различных методов, осуществляющих всевозможные операции над строками. Наиболее интересные методы класса String представлены ниже.

Length

Позволяет получить количество символов в строке.

Concat()

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

CompareTo()

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

Copy()

Создает новую копию существующей строки.

Format()

Применяется для форматирования строки с использованием различных примитивов (строк и числовых данных) и подстановочных выражений вида {0}.

Insert()

Позволяет вставить одну строку внутрь существующей.

Remove() Replace()

Удаляют или заменяют символы в строке.

ToUpper() ToLower()

Преобразуют все символы строки в строчные или прописные.

Chars

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

Join()

Создает строку, соединяя заданные строки и разделяя их строкой-разделителем.

Replace()

Заменяет один символ строки другим.

Split()

Возвращает массив строк с элементами - подстроками основной строки, между которыми находятся символы-разделители.

Substring()

Позволяет получить подстроку основной строки, начинающуюся с определенного символа и имеющую заданную длину.

Trim()

Удаляет пробелы либо набор заданных символов в начале и конце основной строки.

ToCharArray()

Создает массив символов и помещает в него символы исходной строки.

При работе со строками в C# необходимо учитывать следующее. Тип string является ссылочным типом. Однако, несмотря на это, при использовании операций сравнения происходит сравнение значений строковых объектов, а не адресов этих объектов, размещенных в оперативной памяти. Кроме того, оператор "+" объекта string перегружен так, что при его использовании используется метод Concat().

Рассмотрим несколько примеров использования возможностей работы со строками.

В следующем примере функция MakeLine создает строку, которая состоит из символов, получающихся путем несложных вычислений. Результаты вычислений заносятся в массив строк. Таким образом, массив sArr после завершения цикла содержит значения всех полученных чисел. После этого, используя разделитель, передаваемый в функцию в качестве аргумента, а также функцию Join, значения всех ячеек массива sArr объединяются в строку:

protected void Page_Load(object sender, EventArgs e)

{

Response.Write(MakeLine(0, 5, ", "));

Response.Write("</br>");

Response.Write(MakeLine(1, 6, " "));

Response.Write("</br>");

Response.Write(MakeLine(9, 9, ": "));

Response.Write("</br>");

Response.Write(MakeLine(4, 7, "< "));

}

private static string MakeLine(int initVal, int multVal, string sep)

{

string[] sArr = new string[10];

for (int i = initVal; i < initVal+10; i++)

sArr[i-initVal] = String.Format("{0,-3}", i * multVal);

return String.Join(sep, sArr);

}

Результат работы программы представлен на рис. 3.5.

Рис. 3.5.Результат работы программы с использованием функции Join

Довольно часто при работе со строками возникает необходимость разделить строку на подстроки, отделенные друг от друга заданными символами-разделителями. В следующем примере задается строка символов, в которой присутствует несколько символов-разделителей. При помощи функции Split данная строка разделяется на подстроки, которые затем выводятся на экран каждая в отдельной строке. Для задания символов-разделителей используется массив символов. В этом примере также применяется функция Trim, необходимая в данном случае для того, чтобы убедиться в том, что заданная строка не состоит из одних лишь пробелов. Исходный код данного примера приведен ниже.

string words = "строка, содержащая несколько слов, а также

знаков пунктуации: таких как двоеточие и точка.";

string [] split = words.Split(new Char [] {' ', ',', '.', ':'});

foreach (string s in split)

{

if (s.Trim() != "")

Response.Write(s+"</br>");

}

Итогом работы данной программы будет следующий результат, изображенный на рис. 3.6.

Рис. 3.6.Результат работы программы с использованием функции Split

Соседние файлы в папке дополн_матерС#