Главная страница Библиотека (скачать книги) Скачать софт Введение в программирование Стандарты для C++ Уроки по C# Уроки по Python HTML Веб-дизайн Ассемблер в среде Windows ActiveX Javascript Общее о Линукс Линукс - подробно Линукс - новое Delphi Паскаль для начинающих Турбопаскаль Новости Партнеры Наши предложения Архив новостей |
Работа со строками.Строка - это один из наиболее важных типов данных при программировании. Вам уже известен подход языков C/C++ для работы с ними. Сейчас настало время разобрать подход к данной проблеме в C#.Во многих языках программирования строка – это массив символов, но в C# строки являются объектами типа данных string. Способы создания объектов stringСамым простым способом создания объектов типа string является использование строкового литерала. Например: string str = "Это простая тестовая строка"; Вторым способом является создание объекта на основании массива типа char.Например: char [] ar ={'F','i','r','e'}; string str = new string(ar); Обобщим всё вышесказанное. using System; class Sample { static void Main() { char [] ar ={'C','#'}; string str = new string(ar); string str2 = " forever !!!"; Console.Write(str+str2+"\n"); Console.ReadLine(); } } Естественно на экране вы увидите надпись C# forever !!! . Массивы строкСтроки могут быть значениями элементов массива. Например: using System; class Sample { static void Main() { string [] str={" Smoke "," On "," The "," Water "}; for(int i =0; i<str.Length;i++){ Console.WriteLine(str[i]); } str[0]=" Fire "; str[1]=" In "; str[2]=" The "; str[3]=" Sky "; Console.WriteLine("\n\n\n"); for(int i =0; i<str.Length;i++){ Console.WriteLine(str[i]); } Console.Read(); } } Операции со строкамиВ классе string сосредоточено достаточное количество методов по работе со строками. Они схожи с уже изученными вами методами класса CString библиотеки MFC. Например: int CompareTo( string strB ); Сравнивает две строки между собой (строку, через объект которой вызывается данный метод и строку, содержащуюся в объекте strB). Возвращает 0 если строки равны, значение меньше нуля, если содержимое вызывающей строки меньше значения в strB, значение больше нуля, если содержимое вызывающей строки больше значения в strB. Знакомо ли не правда? Да это ж функция strcmp из библиотеки <string.h>! Приведем пример использования строковых методов: using System; class Sample { static void Main() { string str =" This "; string str2 = " is "; string str3 = " sample "; string str4 = " is "; Console.WriteLine("Длина строки str = {0}",str.Length); if(str == str4) Console.WriteLine("Строки str и str4 равны"); else Console.WriteLine("Строки str и str4 не равны"); if(str2!=str4) Console.WriteLine("Строки str и str4 не равны"); else Console.WriteLine("Строки str и str4 равны"); string tempcopy = string.Copy(str); Console.WriteLine(tempcopy); string text = "Sunny one two one"; Console.WriteLine(" Индекс первого вхождения слова one = {0} ",text.IndexOf("one")); Console.WriteLine(" Индекс последнего вхождения слова one = {0} ",text.LastIndexOf("one")); string res= "Start "+text+" !!!"; Console.WriteLine(res); int r = str3.CompareTo(" sample "); Console.WriteLine(r); Console.Read(); } } Подробности использования методов приведенных в примере смотрите в MSDN. Для доступа к конкретным элементам строки используется оператор []. У него есть один минус - он даёт доступ только на чтение.Например: string str ="This"; Console.WriteLine(str[0]); // Строка ниже приводит к ошибке на этапе компиляции str[0]='X'; // ОШИБКА !!! Доступ только на чтении Console.Read(); Console.WriteLine(str[0]); str="Test"; // А так можно !!! То есть мы не можем модифицировать уже существующую строку, например, заменить ряд символов в ней. Для изменения существующей строки необходимо создавать новый объект. Например, для получения части строки можно использовать метод Substring . Например: string str ="Kind Of Magic"; string t = str.Substring(0,3); Console.WriteLine(t); Console.Read();
|
|
Библиотека программиста. 2009. |
|