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

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

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

Осуществляет поиск в вызывающей строке последнего вхождения подстроки, определяемой аргументом value. Возвращает индекс последнего совпадения с искомой подстрокой или -1, если она не обнаружена. Способ поиска определяется аргументом comparisonType

<b>string ToLower(Culturelnfo. CurrentCulture</b> <i>culture)</i>

Возвращает вариант вызывающей строки в нижнем регистре. Способ преобразования определяется аргументом culture

<b>string ToUpper(Culturelnfo. CurrentCulture</b> <i>culture)</i>

Возвращает вариант вызывающей строки в верхнем регистре. Способ преобразования определяется аргументом culture

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

<b>string str = &quot;тест&quot;;</b>

<b>Console.WriteLine(str[0] ) ;</b>

В этом фрагменте кода выводится символ "т", который является первым в строке "тест". Как и в массивах, индексирование строк начинается с нуля. Следует, однако, иметь в виду, что с помощью индекса нельзя присвоить новое значение символу в строке. Индекс может служить только для выборки символа из строки.

Для проверки двух строк на равенство служит оператор ==. Как правило, если оператор == применяется к ссылкам на объект, то он определяет, являются ли они ссылками на один и тот же объект. Совсем иначе обстоит дело с объектами типа string. Когда оператор == применяется к ссылкам на две строки, он сравнивает содержимое этих строк. Это же относится и к оператору !=. В обоих случаях выполняется порядковое сравнение. Для проверки двух строк на равенство с учетом культурной среды служит метод Equals(), где непременно нужно указать способ сравнения в виде аргумента StringComparison.CurrentCulture. Следует также иметь в виду, что метод Compare() служит для сравнения строк с целью определить отношение порядка, например для сортировки. Если же требуется проверить символьные строки на равенство, то для этой цели лучше воспользоваться методом Equals() или строковыми операторами.

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

<b>// Некоторые операции со строками.</b>

<b>using System;</b>

<b>using System.Globalization;</b>

<b>class StrOps {</b>

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

<b>    string strl = &quot;Программировать в .NET лучше всего на С#.&quot;;</b>

<b>    string str2 = &quot;Программировать в .NET лучше всего на С#.&quot;;</b>

<b>    string str3 = &quot;Строки в C# весьма эффективны.&quot;;</b>

<b>    string strUp, strLow;</b>

<b>    int result, idx;</b>

<b>    Console.WriteLine(&quot;strl: &quot; + strl);</b>

<b>    Console.WriteLine(&quot;Длина строки strl: &quot; + strl.Length);</b>

<b>    // Создать варианты строки strl, набранные </b>

<b>    // прописными и строчными буквами.</b>

<b>    strLow = strl.ToLower(CultureInfo.CurrentCulture);</b>

<b>    strUp = strl.ToUpper (CultureInfo.CurrentCulture);</b>

<b>    Console.WriteLine(&quot;Вариант строки strl, &quot; +</b>

<b>          &quot;набранный строчными буквами:n &quot; + strLow); </b>

<b>    Console.WriteLine(&quot;Вариант строки strl, &quot; +</b>

<b>          &quot;набранный прописными буквами:n &quot; + strUp);</b>

<b>    Console.WriteLine();</b>

<b>    // Вывести строку strl посимвольно.</b>

<b>    Console.WriteLine(&quot;Вывод строки strl посимвольно.&quot;); </b>

<b>    for (int i=0; i &lt; strl.Length; i++)</b>

<b>      Console.Write(strl[i]);</b>

<b>    Console.WriteLine(&quot;n&quot;);</b>

<b>    // Сравнить строки способом порядкового сравнения, </b>

<b>    if (strl == str2)</b>

<b>      Console.WriteLine(&quot;strl == str2&quot;); </b>

<b>    else</b>

<b>      Console.WriteLine(&quot;strl != str2&quot;); </b>

<b>    if (strl == str3)</b>

<b>      Console.WriteLine(&quot;strl == str3&quot;); </b>

<b>    else</b>

<b>      Console.WriteLine(&quot;strl != str3&quot;);</b>

<b>    // Сравнить строки с учетом культурной среды.</b>

<b>    result = string.Compare(str3, strl, StringComparison.CurrentCulture) ; </b>

<b>    if(result == 0)</b>

<b>      Console.WriteLine(&quot;Строки strl и str3 равны&quot;); </b>

<b>    else </b>

<b>      if (result &lt; 0)</b>

<b>        Console.WriteLine(&quot;Строка strl-меньше строки str3&quot;); </b>