idx = str.IndexOf("ми", StringComparison.Ordinal);
Console.WriteLine("Индекс первого вхождения подстроки \"ми\": " + idx);
idx = str.LastIndexOf("ми", StringComparison.Ordinal);
Console.WriteLine("Индекс последнего вхождения подстроки \"ми\": " + idx);
char[] chrs = { 'a', '6', 'в' };
idx = str.IndexOfAny(chrs);
Console.WriteLine("Индекс первого вхождения символов " +
"'а','б' или 'в': " + idx);
if (str.StartsWith("C# обладает", StringComparison.Ordinal))
Console.WriteLine("Строка str начинается с подстроки \"C# обладает\"");
if (str.EndsWith("строк.", StringComparison.Ordinal))
Console.WriteLine("Строка str оканчивается подстрокой \"строк.\"");
}
}
Ниже приведен результат выполнения этой программы.
Строка str: C# обладает эффективными средствами обработки строк.
Индекс первого вхождения символа 'о' : 3
Индекс последнего вхождения символа 'о': 49
Индекс первого вхождения подстроки "ми": 22
Индекс последнего вхождения подстроки "ми": 33
Индекс первого вхождения символов 'а', 'б' или 'в': 4
Строка str начинается с подстроки "C# обладает"
Строка str оканчивается подстрокой "строк."
Во многих случаях полезным для поиска в строке оказывается метод Contains()
. Его общая форма выглядит следующим образом.
public bool Contains(string value)
Метод Contains()
возвращает логическое значение true
, если вызывающая строка содержит подстроку, обозначаемую параметром false
. Поиск указываемой подстроки осуществляется порядковым способом. Этот метод особенно полезен, если требуется только выяснить, находится ли конкретная подстрока в другой строке. В приведенном ниже примере программы демонстрируется применение метода Contains()
.
// Продемонстрировать применение метода Contains().
using System;
class ContainsDemo {
static void Main() {
string str = "C# сочетает эффективность с производительностью.";
if(str.Contains("эффективность"))
Console.WriteLine("Обнаружена подстрока \"эффективность\".");
if(str.Contains("эффе"))
Console.WriteLine("Обнаружена подстрока \"эффе\".");
if(!str.Contains("эффективный"))
Console.WriteLine("Подстрока \"эффективный\" не обнаружена.");
}
}
Выполнение этой программы приводит к следующему результату.
Обнаружена подстрока "эффективность".
Обнаружена подстрока "эффе".
Подстрока "эффективный" не обнаружена.
Как следует из результата выполнения приведенной выше программы, метод Contains()
осуществляет поиск на совпадение произвольной последовательности символов, а не только целых слов. Поэтому в вызывающей строке обнаруживается и подстрока "эффективность", и подстрока "эффе". Но поскольку в вызывающей строке отсутствует подстрока "эффективный", то она и не обнаруживается.
У некоторых методов поиска в строке имеются дополнительные формы, позволяющие начинать поиск по указанному индексу или указывать пределы для поиска в строке. В табл.22.3 сведены все варианты методов поиска в строке, которые поддерживаются в классе String
.
Таблица 22.3. Методы поиска в строке, поддерживаемые в классе String
Метод - Назначение
public bool Contains(string