Г. Шилдт - С#4.0 Полное руководство (1160795), страница 156
Текст из файла (страница 156)
Во-первых, сравнение может отражать обычаи и нормы отдельной культурной среды, которые зачастую представляют собой настройки культурной среды, вступающие в силу при выполнении программы. Это стандартное поведение некоторых, хотя и не всех методов сравнения. И во-вторых, сравнение может быть выполнено независимо от настроек культурной среды только по порядковым значениям символов, составляющих строку.
Вообще говоря, прн сравнении строк без учета культурной среды используется лексикографический порядок (и лингвистические особенности), чтобы определить, является ли одна строка больше, меньше или равной другой строке. При порядковом сравнении строки просто упорядочиваются на основании невидоизмененного значения каждого символа. ПРИМЕЧАНИЕ В силу отличий способов сравнения строк с учетом культурной среды и порядкового сравнения, а также последствий каждого такого сравнения настоятельно рекомендуется руководствоваться лучшими методиками, предлагаемыми в настоящее время корпорацией М~сгово(т.
Ведь выбор неверного способа сравнения строк может привести к неправильной работе программы, когда она эксплуатируется в среде, отличающей от той, в которой она разработана. Выбор способа сравнения символьных строк представляет собой весьма ответственное решение. Как правило и без всякий исключений, следует выбирать сравнение строк с учетом культурной среды, если это делается для целей отображения результата пользователю (например, для вывода на экран ряда строк, отсортированных в лексикографическом порядке). Но если строки содержат фиксированную информацию, не предназначенную для видоизменения с учетом отличий в культурных средах, на- Глава 22.
Строки и Форматирование 787 Таблица 22.1. Методы сравнения символьных строк Назначение Метод рсЫдс ягагвс 1пг Совграге(яггьпд яггА, яггьпд ясгВ) СраВНИВаЕт СтрОКу я Ггл СО СтрОКОй я Сгн. ВОЗВ раша Ет ПОЛО- жительное значение, если строка я сгл больше строки я сгв; отрицательное значение, если строка яггл меньше строки я сгв; и нуль, если строки я сгА и я сгв равны. Сравнение выполняется с учетом регистра и культурной среды Сравнивает строку я сгл со строкой я сгв. Возвращает положительное значение, если строка ясгА больше строки ясгВ; отрицательное значение, если строка яггл меньше строки я сгВ; и нуль, если строки ясгА и яггв равны.
Если параметр 1 до огесая е принимает логическое значение с гое, то при сравнении не учитываются различия между прописным и строчным вариантами букв. В противном случае зги различия учитываются. Сравнение выполняется с учетом культурной среды Сравнивает строку я сгл со строкой я сгв. Возвращает положительное значение, если строка я СгА больше строки я сгВ ОтрицатЕЛЬНОЕЗНаЧЕНИЕ,ЕСЛИ СтрОКа яггАМЕНЬШЕСтрОКИ ясгВИ НУЛЬ, если строки ясгл и я ггВ равны. Параметр соглрагхяоп туре определяет конкретный способ сравнения строк Сравнивает строку ясгл со строкой ясгв, используя информацию о культурной среде, определяемую параметром си1 Сиге.
Возвращает положительное значение, если строка я ггл бел ше строки я сгв; отрицательное значение, если строка ясгл меньше строки ясгв; и нуль, если строки ясгА и ясгв равны. Если параметр ТдпогеСаяе принимает логическое значение сгпе, то при сравнении не учитываются различия между прописным и строчным вариантами букв. В противном случае зти различия учитываются. Класс Си1гпге1псо определен в пространстве имен Буягев. Б1оЬа11гаглоп риЬ11с ягаг1с Тпг Сотраге(ягггпд ясгл, ягг1пд яггВ, Ьоо1 ТдпогеСаяе) рсЫТс ясас1с 1пг. Сотраге(яггдпд яггА, яггьпд яггВ, БггзпдСовраг1яоп сожрагхяоптуре) рсЫБс ясасзс зп Совраге(ягг1пд ясгА, яггзпд ясгВ, Ьоо1 хдпогеСаяе, Си1гцге1пГо си1гиге) пример, имя файла, ключевое слово, адрес веб-сайта илн значение, связанное с обеспечением безопасности, то следует выбрать порядковое сравнение строк.
Разумеется, особенности конкретного разрабатываемого приложения будут диктовать выбор подходящего способа сравнения символьных строк. В классе Бгг1пд предоставляются самые разные методы сравнения строк, перечисленные в табл. 22.1. Наиболее универсальным среди них является метод Совграге () . Он позволяет сравнивать две строки полностью или частично, с учетом или без учета регистра, способа сравнения, определяемого параметром типа БггдпдСотрагьяоп, а также сведений о культурной среде, предоставляемых с помощью параметра типа Си1гсге1пГо.
Те перегружаемые варианты метода Соираге ( ), которые не содержат параметр типа БгггпдСолграг1яоп, выполняют сравнение символьных строк с учетом регистра и культурной среды. А в тех перегружаемых его вариантах, которые не содержат параметр типа Сп1гоге1п Го, сведения о культурной среде определяются текущей средой выполнения. В примерах программ, приведенных в этой главе, параметр типа Сп1гсгегп Го не используется, а большее внимание уделяется использованию параметра типа Бгг1пдСовграг1яоп. 788 Часть Н. библиотека С() [2 оболжение табл. 22.1 Метод Назначение ривтсс ягагсс 1пС Соврате(ятгспд ятгА, 1пС 1пе)ехА, яггвпд ятгВ, 1пС 1пдехв, 1пС 1епдСЛ) риЬ11с ягагсс спС Соврате(ягт1пд яггА, 1пС 1пе)ехА, ягтгпд ятгВ, спС 1пе(ехв, дпС 1епдСЛ, Ьсо1 1дпогеСаяе) риЬ11с ятаС1с 1пС Соврате(ятт1пд яггА, 1пС 1пе(ехА, яггспд яттВ, спС 1пе(ехв, спС 1епдСЛ, ВСт1пдСовратсяоп совраг1яоптуре) ривтсс ягаС1с 1пС Соврате(яггспд ягтА, 1пС 1пе)ехА, 5Стспд яттВ, 1ПС 1пс(ехв, 1пС 1епдСЛ, Ьоо1 тдпотеСаяе, Си1Сигетпто ситтиге) Сравнивает части строк ястА и ястВ.
Сравнение начинается со строковых элементов яггА[1пе)ехА] и яггВ[1пс)ехВ] и включает количество символов, определяемых параметром 1епдСЛ. Метод возвращает положительное значение, если часть строки я стА больше части строки яств; отрицательное значение, если часть строки я стА меньше части строки яттВ; И НУЛЬ, ЕСЛИ СраВНИВаЕМЫЕ ЧаотИ СтрОК ягтА И ягтВ равны.
Сравнение выполняется с учетом регистра и культурной среды Сравнивает части строк я сгА и яств. Сравнение начинается со строковых элементов я сгА [1пе(ехА] и я сгв [1пе(ехв] и включает количество символов, определяемых параметром 1епдСЛ. Метод возвращает положительное значение, если часть строки ястА больше части строки яств; отрицатель- НОЕ ЗНаЧЕНИЕ, ЕСЛИ ЧаСтЬ СтрОКИ я Сгд МЕНЬШЕ ЧаотИ СтрОКИ яств; и нуль, если сравниваемые части строк я сгА и яств равны. Если параметр 1дпотесаяе принимает логическое значение сгие, то при сравнении не учитываются различия между прописным и строчным вариантами букв. В противном случае эти различия учитываются.
Сравнение выполняется с учетом культурной среды СраВНИВаЕт ЧаСтИ СтрОК яттА И яСгВ. СраВНЕНИЕ НаЧИНаЕтоя со строковых элементов я сгА (1пе)ехА] и я сгв [1пе(ехв] и включает количество символов, определяемых параметром 1епдсл. Метод возвращает положительное значение, если часть строки яСгА больше части строки ястВ; ОтриЦатЕльное значение, если часть строки я сгА меньше части строки ясгВ; и нуль, если сравниваемые части строк ястА и ясгВ равны. Параметр совраг1яоптуре определяет конкретный способ сравнения строк Сравнивает части строк ястА и ясгВ, используя информацию о культурной среде, определяемую параметром си1Сиге.
Сравнение начинается со строковых элементов ясгА[1пе)ехА] и ясгв[1пе(ехв] и включает количество символов, определяемых параметром 1епдсЛ. Метод возВращаЕт ПОЛОжИтЕЛЬНОЕ ЗНаЧЕНИЕ, ЕСЛИ ЧаСтЬ СтрОКИ я Сгд больше части строки яств; отрицательное значение, если часть строки ястА меньше части строки ястВ; и нуль, если сравниваемые части строк остА и ясгВ равны. Если параметр тдпотесаяе принимает логическое значение стие, то при сравнении не учитываются различия между прописным и строчным вариантами букв.
В противном случае эти различия учитываются. Класс си1ситетпсо определен в пространстве имен Яуягев.С1оЬа11гаС1оп Глава 22. Строки и форматирование 789 Г) одолжение табл. 22.1 Метод 'Назначение риЫТс яСагсс 1пС Солтраге(ягг1пд яггА ягг1пг2 яггВ, Си1Сиге1пго си1Сиге, СоглрагеОрсгопя Оосуопя) риЫ1с ягагзс спг Соглраге(ягг1пгт яггд, 1пг 1пе)ехА, ягг1пгу яггв, гпС ТпыехВ, Тпг 1епдСЛ, Си1Сиге1пго си1Сиге, СоврагеОрС1опя оргдопя) риЫ1с ягагсс гп СоглрагеОгг(1па1(ягг1пгг яггА ягг1пг2 яггВ) риЫТс ясас1с 1пс СоглрагеОгг)1па1(ягг1пи яггА, спг 1пг(ехА, яСГ1пг2 яггВ 1пг Тпс(ехВ, зпг соипг) риЫ1с 1пС СоглрагеТо(оЬбесг оа1ие) риЫсс 1пс СоврагеТо(яггзпв ясгв) Сравнивает строку ясгА со строкой я сгВ, используя информацию о культурной среде, обозначаемую параметром си1С иге, а также варианты сравнЕния, пЕрЕдаваЕмыЕ в качестве параметра орсуопя.