Основы C#. Урок 26. Строки (класс System.String)
Строки в C# - это экземпляры класса System.String. Вообще говоря в C# есть тип string, но класс System.String яляется более продвинутым, так что его использование часто оказывается более оправданным и простым. Этот класс имеет множество методов и свойств, некоторые из которых перечислены ниже:
Свойство Length. Возвращает длину строки. Пример использования:
String s="qqq"; int k=s.Length; //В k запишется 3
Compare. Статический метод, сравнивающий две строки. Возвращает 0, есть строки равны, отрицательное значение, если первая строка меньше второй и положительное значение, если первая строки больше второй (больше и меньше в алфавитном смысле, разумеется). Пример использования:
namespace test { class Test { public static void Main() { String s1="arbour", s2="ace", s3="azote"; System.Console.WriteLine(String.Compare(s1, s1)); //Выдаст 0, т. к. "arbour" равно "arbour". System.Console.WriteLine(String.Compare(s1, s2)); //Выдаст -1, т. к. "arbour" меньше "ace". System.Console.WriteLine(String.Compare(s1, s3)); //Выдаст 1, т. к. "arbour" больше "azote". } } }
Equals. Метод, возвращает true, если строки равны, false - если не равны. Может быть как статическим, так и не статическим. Пример использования:
String s1="qqq", s2="www"; System.Console.WriteLine(String.Equals(s1, s2).ToString()); //Статический метод System.Console.WriteLine(System.Console.WriteLine(String.Equals(s1, s2).ToString()); //Не статический метод System.Console.WriteLine(s1.Equals(s2).ToString());.ToString());
Метод Substring. Поволяет извлечь из строки подстроку. Пример использования:
String s1="abcdefg", s2; s2=s1.Substring(3, 2); System.Console.WriteLine(s2); //Напечатается "de"
Параметры тут такие: первый - с какого места извлекаем (нумерация с нуля) и второй - сколько символов извлекаем.
Метод Insert. Вставляет в строку другую строку. Пример использования:
String s1="abcdefg", s2; s2=s1.Insert(1, "xyz"); System.Console.WriteLine(s2); //Напечатается "axyzbcdefg"
Первый параметр тут - это куда вставляем (нумерация, как всегда, с нуля), второй - что за строчку вставляем.
Метод IndexOf. Позволяет найти в строке подстроку. Пример использования:
String s1="abcabcab", s2="bc", s3="zzz"; System.Console.WriteLine(s1.IndexOf(s2)); //Напечатается 1 System.Console.WriteLine(s1.IndexOf(s3)); //Напечатается -1
Этот метод возвращает номер позиции, на котором в строке находится передаваемая в качестве параметра подстрока. Если такой построки нет, то возвращается -1.
Метод Replace. Производит замену в строке. Пример использования:
String s1="abcabcab", s2="bc", s3; s3=s1.Replace(s2, "q"); System.Console.WriteLine(s3); //Напечатается aqaqab
Методы EndWith и StartsWith. Проверяют, не завершается ли или не начинается ли строка с или на заданную строку соответственно. Пример использования:
String s1="arbour"; if(s1.StartsWith("ar")) System.Console.WriteLine("Строка начинается на \"ar\""); else System.Console.WriteLine("Строка не начинается на \"ar\"");
Методы ToUpper и ToLower переводят строку в верхний или нижний регистр соответственно. Пример использования:
String s1="aRbRur"; s1=s1.ToLower();
Методы Trim, TrimEnds и TrimStart. Удаляют пробельные символы из начала и конца строки (Trim), только с конца строки (TrimEnds) и только с начала строки (TrimStart). Пример использваония:
String s1=" ar brur "; System.Console.Write(s1.Trim());
Заметьте, что при изменении строки фактически старый экземпляр класса System.String уничтожается, и создается новый с там же именем и измененным содержанием. Это означает, что при интенсивной работе со строками программа может работеть не так быстро, как хотелось бы. Если мы не хотим, что бы каждый раз создавался новый экземпляр класса, то вместо класса System.String надо использовать класс StringBuilder, котрый мы рассмотрим на следующем уроке.