Ниже приведены еще две формы метода 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 оканчивается подстрокой \"строк.\"") ;

}

}