Г. Шилдт - С#4.0 Полное руководство (1160795), страница 159
Текст из файла (страница 159)
Ниже приведены простейшие формы этих методов. риЫгс 1ит тдг(ехотхду (сваг () адуот) риЫгс гпс Ьазс1дг(ехойхду (спад [] аиуот) Метод тпс(ехОг)(пу () возвращает индекс первого вхождения лк)бого символа из массива апуОС обнаруженного в вызывающей строке, а метод Ьаат1пс(ехогАпу ()— индекс последнего вхождения любого символа из массива ануа, обнаруженного в вызывающей строке. Если совпадение символов не обнаружено, то в обоих случаях возвращается значение -1. Кроме того, в обоих рассматриваемых здесь методах осуществляется порядковый поиск. При обработке символьных строк нередко оказывается полезно знать, начинается ли строка заданной подстрокой или же оканчивается ею.
Для этой цели служат методы Яьагсзи1сь () и епг[аи1сь () . Ниже приведены их простейшие формы. риЫгс Ьоо1 Ятагтзн1ГЬ (зсггдэ иа1ие) риЫгс Ьоо1 Едг)зн1СЬ (зсггио иа1ие) Метод Яда гьзигьь () возвращает логическое значение сгие, если вызывающая строка начинается с подстроки, переданной ему в качестве аргумента иа1ие. А метод епг[вх1ЬЬ () возвращает логическое значение сгие, если вызывающая строка оканчивается подстрокой, переданной ему в качестве аргумента иа1 ие. В противном случае оба метода возвращают логическое значение Га1яе.
В обоих рассматриваемых здесь методах поиск осуществляется с учетом культурной среды. Для того чтобы указать конкретный способ поиска подстроки, можно воспользоваться приведенными ниже вариантами этих методов с дополнительным параметром типа Ятг1пдОовраг1зоп. риЫгс Ьоо1 Ясагган1ГЬ(згггио иа1ие, Ясггиоеовраггзод сиврагтзодтуре) риЫгс Ьио1 Еиг(зи1ГЬ(зсг1дд иа1ие, Ятггддоивраг1зоп сивраггзиптуре) Оба варианта рассматриваемых здесь методов поиска действуют таким же образом, как и предыдущие их варианты.
Но в то же время они позволяют явно указать конкретный способ поиска. В приведенном ниже примере программы демонстрируется применение нескольких методов поиска в строке. О Продемонстрировать поиск н строке. иггдо Яузсев; с1азз ЯгггиЧЯеагсноеви ( згат1С хогг) Ма1д() ( 798 Часть!(. Библиотека СФ асгтпд вгг = "се обладает эффективными средствами обработки строк.' тпг Ьдх; Сопво1е.игьсеьипе("Строка всг: " + всг); 10х = всг.1пбехот('о'); Сопво1е.игтге1 гпе (" Индекс первого вхождения символа ' о': " + тех); 10х = всг.ьавс1пг)ехот('о'); Сопво1е.хгтгеььпе("индекс последнего вхождения символа 'о': " + 1бх) Ьдх = втг.1пбехот("ми", БтггпдСоврагьвоп.огбфпа1); Сопво1е.игтьеьтпе("Индекс первого вхождения подстроки 1"ми1": " + 1бх) 1 Ьбх = втг.Ьавс1пбехот("ьеГЬ БсгьпдСовраг1воп.огбтпа1); Сопво1е.игьтеЬ1пе("Индекс последнего вхождения подстроки 1"ми1": " + 1бх)) сваг() свгв = ( 'а', 'б', 'в' ); ьдх = втг.
1пдехотапу (сиге) 4 Сопао1е.Хгььеььпе("Индекс первого вхождения символов " + 'а', 'б' или 'в': " + гбх) 1 ея(втг.зтагтвигсь("С4 обладает", Бгг1пБСовраг1воп.огбгпа1)) Сопво1е.нггсеЬтпе("Строка всг начинается с подстроки 1"С$ обладает1""); 11(всг.кпдвХ1тй("строк.", БсггпдСоираг1воп.огбтпа1)) сопво1е.хгггеьфпе("строка вгг оканчивается подстрокой 1"строк. 1"") 1 Ниже приведен результат выполнения этой программы. Во многих случаях полезным для поиска в строке оказывается метод Сопеаьпв () . Его общая форма выглядит следующим образом. ро)о11с Ьоо1 Сопсатпв (всг1по уа1ие) Метод сопсат па () возвращает логическое значение сгпе, если вызывающая строка содержит подстроку, обозначаемую параметром уа1ие, в противном случае — логическое значение 1а1ве.
Поиск указываемой подстроки осуществляется порядковым способом. Этот метод особенно полезен, если требуется только выяснить, находится ли конкретная подстрока в другой строке. В приведенном ниже примере программы демонстрируется применение метода сопса1па () . // Продемонстрировать применение метода Сопга1пв() ивьпц Бувоеги Строка Индекс Индекс Индекс Индекс Индекс Строка Строка всг: С$ обладает эффективными средствами обработки строк.
первого вхождения символа 'о': 3 последнего вхождения символа 'о'. "49 первого вхожления подстроки "ми": 22 последнего вхождения подстроки "ми": ЗЗ первого вхождения символов 'а', 'б' или 'в': 4 всг начинается с подстроки "СФ обладает" вьг оканчивается подстрокой "строк." Глава 22. Строки и форматирование 799 с1аяя Сопсагпяоеюо ( ягаг1с тога маза() ( ягг1пд ягг = "С() сочетает эффективность с производительностью." 1Й(яфг.Сопьа1пя("эффективность")) Сопяп1е.игьгевьпе("Обнаружена подстрока 1"эффективность|".")г 11(ясг.Сопсатпя("яффе")) Сппяп1е.нгьсеигпе("Обнаружена подстрока 1"эффе1"."); 11(!ясг.Сппсаьпя("эффективный")) Сопяо1е.Хгьсетнпе("Подстрока 1"зффективный1" ие обнаружена."); Выполнение этой программы приводит к следующему результату.
Обнаружена подстрока "эффективность". ОбнаРУжена подстРока "яффе". Подстрока "эффективный" ие обнаружена. Таблица 22.3. Методы поиска в строке, поддерживаемые в классе Збк1пд Метод Назначение риЬ11с ЬОО1 Сопба1пя(ягг1пд иа1ие) Возвращает логическое значение сгие, если вызывающая строка содержит подстроку уа1ие. Если же подстрока иа1ие не обнаружена, возвращается логическое значение та1яе Возвращает логическое значение сгие, если вызывающая строка оканчивается подстрокой иа1ие.
В противном случае возвращает логическое значение та1яе Возвращает логическое значение сгие, если вызывающая строка оканчивается подстрокой иа1ие. В противном случае возвращает логическое значение та1яе. Параметр соырагтяоптуре определяет конкретный способ поиска Возвращает логическое значение сгие, если вызывающая строка оканчивается подстрокой иа1ие, иначе возвращает риЬ1гс ЬОО1 Епс(яХ1СЬ (ясг1пд иа1ие) риЬ11С Ьоо1 ЕпбяХ1тб(ягг1пд иа1ие, БбгфпдСоыраг1яоп сотрагтяпптуре) риЬ11с Ьоо1 Епс(яиггн(ябг1пд иа1ие, ЬОО1 1дпогеСаяе, Си1тиге1пго си1биге) Как следует из результата выполнения приведенной выше программы, метод Сопгатпя () осуществляет поиск на совпадение произвольной последовательности символов, а не только целых слов. Поэтому в вызывающей строке обнаруживается и подстрока "эффективность", и подстрока "эффеГс Но поскольку в вызывающей строке отсутствует подстрока "эффективный", то она и не обнаруживается.
У некоторых методов поиска в строке имеются дополнительные формы, позволяющие начинать поиск по указанному индексу или указывать пределы для поиска в строке. В табл. 22.3 сведены все варианты методов поиска в строке, которые поддерживаются в классе Ясгтпд. Назначение Метод 800 Часть П. Библиотека С(г риЬ1гс гпг Епг(ехОС(апаг иа1ие) риЬ11а 1пг Епг)ехОС(яггьпд иа1ие) риЬ11а гпг Епс(ехой(апаг иа1ие, 1пС ягагСЕпг(ех) риЬ11а 1пг Хпг(ехой(ягг1пд иа1ие, 1пг ягагСЕпг(ех) риЬ11а 1пС Епс(ехОГ(апаг иа1ие, 1пг ягагСЕпг(ех, 1пг аоипг) риЬ11а 1пг Епг(ехОГ(яггьпд иа1ие, 1пг ягагСЕпг(ех, 1пг аоипС) риЬ11а 1пС Епс(ехОЕ(ягг1пд иа1ие, ВСС1пдОатраг1яап аотрагбяопТуре) П одолжение табл. 22,3 логическое значение Са1яе.
Если параметр ЕдпогеОяяе принимает логическОЕ значение сгие, то при сравнении не учитываются различия между прописным и строчным вариантами букв. В противном случае эти различия учитываются. Поиск осуществляется с использованием информации о культурной среде, обозначаемой параметром аи1 С иге Возвращает индекс первого вхождения символа иа1ие в вызывающей строке.
Если искомый символ не обнаружен, то возвращается значение -1 Возвращает индекс первого вхождения подстроки иа1не в вызывающей строке. Если искомая подстрока не обнаружена, то возвращается значение -1 Возвращает индекс первого вхождения символа ия1 ив в вызывающей строке. Поиск начинается с элемента, указываемого по индексу я с аг сепг)ех, Метод возвращает значение -1, если искомый символ не обнаружен Возвращает индекс первого вхождения подстроки иа1ие в вызывающей строке. Поиск начинается с элемента, указываемого по индексу я саг сЕпг(ех.
Метод возвращает значение -1, если искомая подстрока не обнаружена Возвращает индекс первого вхождения символа т я1ие в вызывающей строке. Поиск начинается с элемента, указываемого по индексу ясяг сепг(ех, и охватывает число элементов, определяемых параметром аоипс. Метод возвращает значение -1, если искомый символ не обнаружен Возвращает индекс первого вхождения подстроки иа1ие в вызывающей строке. Поиск начинается с элемента, указываемого по индексу я сагсепе(ех, и охватывает число элементов, определяемых параметром аоипс. Метод возвращает значение -1, если искомая подстрока не обнаружена Возвращает индекс первого вхождения Падотраин иа1ие В ВЫЗЫВаЮщЕй СтрОКЕ. Метод Назначение риЬ11о 1пс 1пе(ехОГ(ясг1пд иа1ие, 1лт ягагс1лыех, Ясг1лдСопряг1яоп оотрагтяопТуре) риЬ11с 1пг 1пг(ехО1 (ясг1пд иатие, 1пг ягагг1лвех, 1пг соиле, Бвг1пиСогпраг1яоп сошрагдяолТуре) риЬ11с 1пв Ьаяг1пп[ех01(спаг иа1ие) риЬ11с 1пс 1пг)ех01Апу(спаг[] ялуОГ) риЬ11с 1пс 1ле(ехОГАлу(спаг[] алуОГ, 1пс яеагетлыех) риЬ11с 1пс 1пг(ехОГАпу(оЬяг[] алуОГ, 1лс ягагс1лгтех, 1пс соиле) Глава 22.
Строки и Форматирование 801 П одолжение табл. 22.3 Параметр оотпрагуяолтуре определяет конкретный способ выполнения поиска. Метод возвращает значение -1, если искомая подстрока не обнаружена Возвращает индекс первого вхождения подстроки иа1ие в вызывающей строке. Поиск начинается с элемента, указываемого по индексу ясагстлс(ех. Параметр ооппрягтяол туре определяет конкретный способ выполнения поиска.