Добавить в цитаты Настройки чтения

Страница 378 из 502

<b>public int LastlndexOf(string value, StringComparison comparisonType)</b>

В первой форме рассматриваемого здесь метода поиск последнего вхождения строки, обозначаемой параметром value, осуществляется с учетом культурной среды. А во второй форме предоставляется возможность указать значение типа StringComparison, обозначающее способ поиска. Если же искомая строка не найдена, то в обеих формах данного метода возвращается значение -1.

В классе String предоставляются еще два интересных метода поиска в строке: IndexOfAny() и LastlndexOfAny(). Оба метода обнаруживают первый символ, совпадающий с любым набором символов. Ниже приведены простейшие формы этих методов.

<b>public int IndexOfAny(char[] anyOf) public int LastlndexOfAny(char[] anyOf)</b>

Метод IndexOfAny() возвращает индекс первого вхождения любого символа из массива anyOf, обнаруженного в вызывающей строке, а метод LastlndexOfAny() — индекс последнего вхождения любого символа из массива anyOf, обнаруженного в вызывающей строке. Если совпадение символов не обнаружено, то в обоих случаях возвращается значение -1. Кроме того, в обоих рассматриваемых здесь методах осуществляется порядковый поиск.

При обработке символьных строк нередко оказывается полезно знать, начинается ли строка заданной подстрокой или же оканчивается ею. Для этой цели служат методы StartsWith() и EndsWith(). Ниже приведены их простейшие формы.

<b>public bool StartsWith(string value)</b>

<b>public bool EndsWith(string value)</b>

Метод StartsWith() возвращает логическое значение true, если вызывающая строка начинается с подстроки, переданной ему в качестве аргумента value. А метод EndsWith() возвращает логическое значение true, если вызывающая строка оканчивается подстрокой, переданной ему в качестве аргумента value. В противном случае оба метода возвращают логическое значение false.

В обоих рассматриваемых здесь методах поиск осуществляется с учетом культурной среды. Для того чтобы указать конкретный способ поиска подстроки, можно воспользоваться приведенными ниже вариантами этих методов с дополнительным параметром типа StringComparison.

<b>public bool StartsWith(string value, StringComparison comparisonType)</b>

<b>public bool EndsWith(string value, StringComparison comparisonType)</b>

Оба варианта рассматриваемых здесь методов поиска действуют таким же образом, как и предыдущие их варианты. Но в то же время они позволяют явно указать конкретный способ поиска.

В приведенном ниже примере программы демонстрируется применение нескольких методов поиска в строке.

<b>// Продемонстрировать поиск в строке.</b>

<b>using System;</b>

<b>class StringSearchDemo {</b>

<b>  static void Main() {</b>

<b>    string str = &quot;C# обладает эффективными средствами обработки строк.&quot;;</b>

<b>    int idx;</b>

<b>    Console.WriteLine(&quot;Строка str: &quot; + str);</b>

<b>    idx = str.IndexOf('о');</b>

<b>    Console.WriteLine(&quot;Индекс первого вхождения символа 'o': &quot; + idx);</b>

<b>    idx = str.LastIndexOf('о');</b>

<b>    Console.WriteLine(&quot;Индекс последнего вхождения символа 'o': &quot; + idx);</b>

<b>    idx = str.IndexOf(&quot;ми&quot;, StringComparison.Ordinal);</b>

<b>    Console.WriteLine(&quot;Индекс первого вхождения подстроки &quot;ми&quot;: &quot; + idx);</b>

<b>    idx = str.LastIndexOf(&quot;ми&quot;, StringComparison.Ordinal);</b>

<b>    Console.WriteLine(&quot;Индекс последнего вхождения подстроки &quot;ми&quot;: &quot; + idx);</b>

<b>    char[] chrs = { 'a', '6', 'в' };</b>

<b>    idx = str.IndexOfAny(chrs);</b>

<b>    Console.WriteLine(&quot;Индекс первого вхождения символов &quot; +</b>

<b>            &quot;'а','б' или 'в': &quot; + idx);</b>

<b>    if (str.StartsWith(&quot;C# обладает&quot;, StringComparison.Ordinal))</b>

<b>      Console.WriteLine(&quot;Строка str начинается с подстроки &quot;C# обладает&quot;&quot;);</b>

<b>    if (str.EndsWith(&quot;строк.&quot;, StringComparison.Ordinal))</b>

<b>      Console.WriteLine(&quot;Строка str оканчивается подстрокой &quot;строк.&quot;&quot;);</b>

<b>  }</b>

<b>}</b>

Ниже приведен результат выполнения этой программы.

<b>Строка str: C# обладает эффективными средствами обработки строк.</b>

<b>Индекс первого вхождения символа 'о' : 3</b>

<b>Индекс последнего вхождения символа 'о': 49</b>

<b>Индекс первого вхождения подстроки &quot;ми&quot;: 22</b>

<b>Индекс последнего вхождения подстроки &quot;ми&quot;: 33</b>

<b>Индекс первого вхождения символов 'а', 'б' или 'в': 4</b>

<b>Строка str начинается с подстроки &quot;C# обладает&quot;</b>

<b>Строка str оканчивается подстрокой &quot;строк.&quot;</b>