|
Обращение со строками C# Полное руководство Герберт Шилдт
|
Класс типа string содержит ряд методов для обращения со строками. Некоторые из этих методов перечислены в табл. 7.1. К типу string относится также свойство Length, содержащее длину строки. Таблица 7.1. Некоторые общеупотребительные методы обращения со строками Метод | Описание | static string Copy(string str) | Возвращает копию строки str | int CompareTo(string str) | Возвращает отрицательное значение, если вызывающая строка меньше строки str; положительное значение, если вызывающая строка больше строки str; и нуль, если сравниваемые строки равны | int IndexOf(string str) | Осуществляет поиск в вызывающей строке подстроки str. Возвращает индекс первого вхождения искомой подстроки или -1, если она не обнаружена | int LastlndexOf(string str) | Осуществляет поиск в вызывающей строке подстроки str. Возвращает индекс последнего вхождения искомой подстроки или -1, если она не обнаружена | string ToLowerO | Возвращает вариант вызывающей строки, набранный строчными буквами | string ToUpperO | Возвращает вариант вызывающей строки, набранный прописными буквами | Отдельный символ выбирается из строки с помощью индекса, как в приведенном ниже фрагменте кода. string str = "тест"; Console.WriteLine(str[0]); В этом фрагменте кода выводится символ "т", который является первым в строке "тест". Как и в массивах, индексирование строк начинается с нуля. Следует, однако, иметь в виду, что с помощью индекса нельзя присвоить новое значение символу в строке. Индекс может служить только для выборки символа из строки. Для проверки двух строк на равенство служит оператор ==. Как правило, если оператор == применяется к ссылкам на объект, то он определяет, являются ли они ссылками на один и тот же объект. Совсем иначе обстоит дело с объектами типа string. Когда оператор == применяется к ссылкам на две строки, он сравнивает содержимое этих строк. Это же относится и к оператору ! =. При сравнении объектов типа string сравнивается содержимое строк. А для других видов сравнения строк приходится пользоваться методом CompareTo (). В приведенном ниже примере программы демонстрируется несколько операций со строками.
// Некоторые операции со строками.
using System;
class StrOps { static void Main() { string str1 = "Программировать в .NET лучше всего на С#."; string str2 = string.Copy(strl); string str3 = "Строки в C# весьма эффективны."; string strUp, strLow; int result, idx;
Console.WriteLine("str1: " + str1); Console.WriteLine("Длина строки str1: " + str1.Length);
// Создать варианты строки strl, набранные // прописными и строчными буквами. strLow = str1.ToLower(); strUp = str1.ToUpper (); Console.WriteLine("Вариант строки strl, " + "набранный строчными буквами:\n " + strLow); Console.WriteLine("Вариант строки strl, " + "набранный прописными буквами:\n " + strUp);
Console.WriteLine();
// Вывести строку strl посимвольно. Console.WriteLine("Вывод строки str1 посимвольно."); for (int i=0; i < str1.Length; i++) Console.Write(strl[i]);
Console.WriteLine("\n"); // Сравнить строки, if(str1 == str2) Console.WriteLine ("str1 == str2"); else Console.WriteLine("str1 != str2"); if(str1 == str3) Console.WriteLine("str1 == str3"); else Console.WriteLine("str1 != str3");
result = str1.CompareTo(str3); if(result == 0) Console.WriteLine("Строки str1 и str3 равны"); else if(result < 0) Console.WriteLine("Строка str1 меньше строки str3"); else Console.WriteLine("Строка str1 больше строки str3");
Console.WriteLine();
// Присвоить новую строку переменной str2. str2 = "Один Два Три Один" ;
// Поиск строки. idx = str2.IndexOf("Один"); Console.WriteLine ("Индекс первого вхождения подстроки <Один>: " + idx); idx = str2.LastlndexOf("Один"); Console.WriteLine("Индекс последнего вхождения подстроки <Один>: " + idx); } }
При выполнении этой программы получается следующий результат: str1: Программировать в .NET лучше всего на С#. Длина строки str1: 41 Вариант строки str1, набранный строчными буквами: программировать в .net лучше всего на с#. Вариант строки str1, набранный прописными буквами: программировать в .net лучше всего на с#. Вывод строки strl посимвольно. Программировать в .NET лучше всего на С#. str1 == str2 str1 != str3 str1 больше str3 Индекс первого вхождения подстроки <Один>: 0 Индекс последнего вхождения подстроки <Один>: 13 С помощью оператора + можно сцепить (т.е. объединить вместе) две строки. Например, в следующем фрагменте кода: string str1 = "Один"; string str2 = "Два"; string str3 = "Три"; string str4 = strl + str2 + str3; переменная str4 инициализируется строкой "ОдинДваТри". И еще одно замечание: ключевое слово string является псевдонимом класса System. String, определенного в библиотеке классов для среды .NET Framework, т.е. оно устанавливает прямое соответствие с этим классом. Следовательно, поля и методы, определяемые типом string, относятся непосредственно к классу System. String, в который входят и многие другие компоненты. Подробнее о классе System. String речь пойдет в части II этой книги.
|
|
|