Страница 379 из 502
Во многих случаях полезным для поиска в строке оказывается метод Contains(). Его общая форма выглядит следующим образом.
<b>public bool Contains(string value)</b>
Метод Contains() возвращает логическое значение true, если вызывающая строка содержит подстроку, обозначаемую параметром value, в противном случае — логическое значение false. Поиск указываемой подстроки осуществляется порядковым способом. Этот метод особенно полезен, если требуется только выяснить, находится ли конкретная подстрока в другой строке. В приведенном ниже примере программы демонстрируется применение метода Contains().
<b>// Продемонстрировать применение метода Contains().</b>
<b>using System;</b>
<b>class ContainsDemo {</b>
<b> static void Main() {</b>
<b> string str = "C# сочетает эффективность с производительностью.";</b>
<b> if(str.Contains("эффективность"))</b>
<b> Console.WriteLine("Обнаружена подстрока "эффективность".");</b>
<b> if(str.Contains("эффе"))</b>
<b> Console.WriteLine("Обнаружена подстрока "эффе".");</b>
<b> if(!str.Contains("эффективный"))</b>
<b> Console.WriteLine("Подстрока "эффективный" не обнаружена.");</b>
<b> }</b>
<b>}</b>
Выполнение этой программы приводит к следующему результату.
<b>Обнаружена подстрока "эффективность".</b>
<b>Обнаружена подстрока "эффе".</b>
<b>Подстрока "эффективный" не обнаружена.</b>
Как следует из результата выполнения приведенной выше программы, метод Contains() осуществляет поиск на совпадение произвольной последовательности символов, а не только целых слов. Поэтому в вызывающей строке обнаруживается и подстрока "эффективность", и подстрока "эффе". Но поскольку в вызывающей строке отсутствует подстрока "эффективный", то она и не обнаруживается.
У некоторых методов поиска в строке имеются дополнительные формы, позволяющие начинать поиск по указанному индексу или указывать пределы для поиска в строке. В табл.22.3 сведены все варианты методов поиска в строке, которые поддерживаются в классе String.
Таблица 22.3. Методы поиска в строке, поддерживаемые в классе String
Метод - Назначение
public bool Contains(string value) - Возвращает логическое значение true, если вызывающая строка содержит подстроку value. Если же подстрока value не обнаружена, возвращается логическое значение false
public bool EndsWith(string value) - Возвращает логическое значение* true, если вызывающая строка оканчивается подстрокой value. В противном случае возвращает логическое значение false
public bool EndsWith(string value, StringComparison comparisonType) - Возвращает логическое значение true, если вызывающая строка оканчивается подстрокой value. В противном случае возвращает логическое значение false. Параметр comparisonType определяет конкретный способ поиска
public bool EndsWith(string value, bool ignoreCase, Culturelnfo culture) - Возвращает логическое значение true, если вызывающая строка оканчивается подстрокой value, иначе возвращает логическое значение false. Если параметр ignoreCase принимает логическое значение true, то при сравнении не учитываются различия между прописным и строчным вариантами букв. В противном случае эти различия учитываются. Поиск осуществляется с использованием информации о культурной среде, обозначаемой параметром culture
public int IndexOf(char value) - Возвращает индекс первого вхождения символа value в вызывающей строке. Если искомый символ не обнаружен, то возвращается значение -1
public int IndexOf(string value) - Возвращает индекс первого вхождения подстроки value в вызывающей строке. Если искомая подстрока не обнаружена, то возвращается значение -1
public int IndexOf(char value, int startlndex) - Возвращает индекс первого вхождения символа value в вызывающей строке. Поиск начинается с элемента, указываемого по индексу startlndex. Метод возвращает значение -1, если искомый символ не обнаружен
public int IndexOf(string value, int startlndex) - Возвращает индекс первого вхождения подстроки value в вызывающей строке. Поиск начинается с элемента, указываемого по индексу startlndex. Метод возвращает значение -1, если искомая подстрока не обнаружена
public int IndexOf(char value, int startlndex, int count) - Возвращает индекс первого вхождения символа value в вызывающей строке. Поиск начинается с элемента, указываемого по индексу startlndex, и охватывает число элементов, определяемых параметром count. Метод возвращает значение -1, если искомый символ не обнаружен
public int IndexOf(string value, int startlndex, int count) - Возвращает индекс первого вхождения подстроки value в вызывающей строке. Поиск начинается с элемента, указываемого по индексу startlndex, и охватывает число элементов, определяемых параметром count. Метод возвращает значение -1, если искомая подстрока не обнаружена public int
IndexOf(string value, StringComparison comparisonType) - Возвращает индекс первого вхождения подстроки value в вызывающей строке. Параметр comparisonType определяет конкретный способ выполнения поиска. Метод возвращает значение -1, если искомая подстрока не обнаружена
public int IndexOf(string value, int startlndex, StringComparison comparison Type) - Возвращает индекс первого вхождения подстроки value в вызывающей строке. Поиск начинается с элемента, указываемого по индексу startlndex. Параметр comparisonType определяет конкретный способ выполнения поиска. Метод возвращает значение -1, если искомая подстрока не обнаружена
public int IndexOf(string value, int startlndex, int count, StringComparison comparisonType) - Возвращает индекс первого вхождения подстроки value в вызывающей строке. Поиск начинается с элемента, указываемого по индексу startlndex, и охватывает число элементов, определяемых параметром count. Параметр comparisonType определяет конкретный способ выполнения поиска. Метод возвращает значение -1, если искомая подстрока не обнаружена