Ниже приведены еще две формы метода LastlndexOf () , позволяющие искать последнее вхождение одной строки в другой.
public int LastlndexOf(string value)
public int LastlndexOf(string value, StringComparison comparisonType)
В первой форме рассматриваемого здесь метода поиск последнего вхождения строки, обозначаемой параметром value , осуществляется с учетом культурной среды. А во второй форме предоставляется возможность указать значение типа StringComparison, обозначающее способ поиска. Если же искомая строка не найдена, то в обеих формах данного метода возвращается значение -1.
В классе String предоставляются еще два интересных метода поиска в строке: IndexOf Any ( ) и LastlndexOf Any () . Оба метода обнаруживают первый символ, совпадающий с любым набором символов. Ниже приведены простейшие формы этих методов.
public int IndexOfAny(char[] anyOf) public int LastlndexOfAny(char[] anyOf)
Метод IndexOf Any () возвращает индекс первого вхождения любого символа из массива anyOf, обнаруженного в вызывающей строке, а метод LastlndexOfAny () — индекс последнего вхождения любого символа из массива anyOf, обнаруженного в вызывающей строке. Если совпадение символов не обнаружено, то в обоих случаях возвращается значение -1. Кроме того, в обоих рассматриваемых здесь методах осуществляется порядковый поиск.
При обработке символьных строк нередко оказывается полезно знать, начинается ли строка заданной подстрокой или же оканчивается ею. Для этой цели служат методы StartsWith ( ) и EndsWith () . Ниже приведены их простейшие формы.
public bool StartsWith(string value) public bool EndsWith(string value)
Метод StartsWith () возвращает логическое значение true, если вызывающая строка начинается с подстроки, переданной ему в качестве аргумента value . А метод EndsWith () возвращает логическое значение true, если вызывающая строка оканчивается подстрокой, переданной ему в качестве аргумента value. В противном случае оба метода возвращают логическое значение false.
В обоих рассматриваемых здесь методах поиск осуществляется с учетом культурной среды. Для того чтобы указать конкретный способ поиска подстроки, можно воспользоваться приведенными ниже вариантами этих методов с дополнительным параметром типа StringComparison.
public bool StartsWith(string value, StringComparison comparisonType) public bool EndsWith(string value, StringComparison comparisonType)
Оба варианта рассматриваемых здесь методов поиска действуют таким же образом, как и предыдущие их варианты. Но в то же время они позволяют явно указать конкретный способ поиска.
В приведенном ниже примере программы демонстрируется применение нескольких методов поиска в строке.
// Продемонстрировать поиск в строке.
Using System;
class StringSearchDemo { static void Main() {
string str = "C# обладает эффективными средствами обработки строк."; int idx;
Console.WriteLine("Строка str: " + str); idx = str.IndexOf('o');
Console.WriteLine("Индекс первого вхождения символа 'o': " + idx); idx = str.LastlndexOf('о');
Console.WriteLine("Индекс последнего вхождения символа 'o': " + idx); idx = str.IndexOf("ми", StringComparison.Ordinal);
Console.WriteLine("Индекс первого вхождения подстроки \"ми\": " + idx); idx = str.LastlndexOf("ми", StringComparison.Ordinal);
Console.WriteLine("Индекс последнего вхождения подстроки \"ми\": " + idx);
char[] chrs = { 1 a', '6', 1 в' };
idx = str.IndexOfAny(chrs);
Console.WriteLine("Индекс первого вхождения символов " +
" 'а1, 'б' или 'в': " + idx);
if(str.StartsWith("C# обладает", StringComparison.Ordinal))
Console.WriteLine("Строка str начинается с подстроки \"C# обладает\"");
if(str.EndsWith("строк.", StringComparison.Ordinal))
Console.WriteLine("Строка str оканчивается подстрокой \"строк.\"") ;
}
}