C# 4.0 полное руководство - 2011
Шрифт:
Ниже приведены еще две формы метода IndexOf , позволяющие искать первое вхождение одной строки в другой.
public int IndexOf(String value)
public int IndexOf(String value, StringComparison comparisonType)
В первой форме рассматриваемого здесь метода поиск первого вхождения строки, обозначаемой параметром value, осуществляется
Для обнаружения последнего вхождения символа или строки в исходной строке служит метод Last IndexOf . И для этого метода определено несколько перегружаемых форм. Ниже приведена одна из форм для поиска последнего вхождения символа в вызывающей строке.
public int LastlndexOf(char value)
В этой форме метода LastlndexOf осуществляется порядковый поиск, а в итоге возвращается последнее вхождение символа value в вызывающей строке или же значение -1, если искомый символ не найден.
Ниже приведены еще две формы метода 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 — индекс последнего вхождения любого символа
При обработке символьных строк нередко оказывается полезно знать, начинается ли строка заданной подстрокой или же оканчивается ею. Для этой цели служат методы 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);