Г. Шилдт - С#4.0 Полное руководство (1160795), страница 157
Текст из файла (страница 157)
Возвращает положительное значение, если строка ясгд больше строки ясгв; отрицательное значение, если строка ясгА меньше строки яств; и нуль, если строки ясгА и ясгВ равны. классы си1сиге1псо и соглрагеОрс1опя определены в пространстве имен Яуягее . 21оЬа11заС1оп Сравнивает части строк яегА и яСгВ, используя информацию о культурной среде, обозначаемую параметром си1Сиге, а также варианты сравнения, передаваемые а качестве параметра оргуопя. Сравнение начинается со строковых элементов ясгА [Тпвекл) и ясгВ[1пг)ехв) и включает количество символов, определяемых параметром 1епдсл.
Метод возвращает положительное значение, если часть строки я сгА больше части строки я сгв; отрицательное значение, если часть строки ясгА меньше части строки я сев; и нуль, если сравниваемые части строк я сгА и я сев равны. Классы Си1Сиге1пбо и СоглрагеорС1опя определены в пространстве имен Буягегл.
51оЬа11гагсоп Сравнивает строку ясгА со строкой я сев независимо от культурной среды, языка и региональных стандартов. Возвращает положительное значение, если строка я сгА больше строки ясгв) отрицательное значение, если строка ясгА меньше строки ясгв; и нуль, если строки ясгА и я сев равны Сравнивает части строк ясгА и я сев независимо от культурной среды, языка и региональных стандартов. Сравнение начинаетсясостроковыхэлементов ясгА[1пг(ехд) и ясгВ[1пг(ехв) и включает количество символов, определяемых параметром свисс. Метод возвращает положительное значение, если часть строки я сгА больше части строки я сгв; отрицательное значение, если часть строки я сгА меньше части строки ясгВ; и нуль, если сравниваемые части строк ясгА и я сев равны Сравнивает вызьаающую строку со строковым представлением объекта иа1ие.
Возвращает положительное значение, если вызывающая строка больше строки оа1ие; отрицательное значение, если вызывающая строка меньше строки |я1ие; и нуль, если сравниваемые строки равны Сравнивает вызывающую строку со строкой я сгв. Возвращает положительное значение, если вызывающая строка больше строки ясгв; отрицательное значение, если вызывающая строка меньше строки я сгв; и нуль, если сравниваемые строки равны 790 Часть Н.
Библиотека С№ Окончание табл. 22.1 Назначение Метод риЬ11с очегг1г(е Ьоо1 Едиа1я (оЬбесс оЬт) Возвращает логическое значение ггпе, если вызывающая строка содержит ту же последовательность символов, что и строковое представление обьекта оЬ11 Выполняется порядковое сравнение с учетом регистра, но без учета культурной среды Возвращает логическое значение ггпе, если вызывающая строка содержит ту же последовательность символов, что и строка оа1ие. Выполняется порядковое сравнение с учетом регистра, но без учета культурной среды Возвращает логическое значение ггпе, если вызывающая строка содержит ту же последовательность символов, что и строка уа1ие.
Параметр соврагуяоптуре определяет конкретный способ сравнения строк Возвращает логическое значение г гче, если строка я содержит ту же последовательность символов, что и строка Ь. Выполняется порядковое сравнение с учетом регистра, но без учета культурной среды Возвращает логическое значение ггпе, если строка я содержит ту же последовательность символов, что и строка Ь. Параметр соврлгляоптуре определяет конкретный способ сравнения строк рпЬ11с Ьоо1 Едпа1я (яггдпд оа1ие) рпЬ11с Ьоо1 Едпа1я(ягг1пд уа1ие, Бсг1пдСоврагдяоп совраг1яопТуре) рчЬ11с ясас1с Ъоо1 Едпа1я(ятг1пд а, ясг1пд Ь) рпЬ11с ясасдс Ьро1 Едиа1я (ясгдпд а, ясг1пд Ь, Бсг1пдСоврагдяоп соврагуяопТуре) Таблица 22.2.
Значения, определяемые в перечислении БЬгдпдСоврагдвоп Значение Описание СпггепГСп1соге Сравнение строк производится с использованием теку- щих настроек параметров культурной среды Сравнение строк производится с использованием те- кущих настроек параметров культурной среды, но без учета регистра Сравнение строк производится с использованием не- изменяемых, т.е.
универсальных данных о культурной среде СиггепГСп1соге1дпогеСаяе 1пчагуапГСп1спге Тип БГ гдпдСовраг1я оп представляет собой перечисление, в котором определяютгя значения, приведенные в табл. 22.2. Используя эти значения, можно организовать сравнение строк, удовлетворяющее потребностям конкретного приложения. Следовательно, добавление параметра типа БсгдпдСовра гг яоп расширяет возможности метода Совраге () и других методов сравнения, например, Едиа1я () . Это дает также возможность однозначно указывать способ предполагаемого сравнения строк. В силу имеющих отличий между сравнением строк с учетом культурной среды и порядковым сравнением очень важно быть предельно точным в этом отношении. Именно по этой причине в примерах программ, приведенных в данной книге, параметр типа Бсг1пдСоврагдяоп явно указывается в вызовах тех методов, в которых он поддерживается.
Глава 22. Строки и форматирование 791 Окончание табл. 22.2 Описание Значение 1птаггапсСн1гпге1пцсгеСаяе Сравнение строк производится с использованием неизменяемых, т.е. универсальных данных о культурной среде и без учета регистра Сравнение строк производится с использованием порядковых значений символов в строке. При этом лексикографический порядок может нарушиться, а условные обозначения, принятые в отдельной культурной среде, игнорируются Сравнение строк производится с использованием порядковых значений символов в строке, но без учета регистра. При этом лексикографический порядок может нарушиться, а условные обозначения, принятые а отдельной культурной среде, игнорируются Огбьпа1 Огс(1па11опогеСаяе Продемонстрировать разные способы сравнения символьных строк.
ня1пс Яуягеж; с1аяя Ссирагеоеиа ( ягагьс чсМ маьп() ( ягтьло яяг1 = "а1рпа"; ясгьлс ясг2 = "А1рьа"; В любом случае метод Соыраге () возвращает отрицательное значение, если первая сравниваемая строка оказывается меньше второй; положительное значение, если первая сравниваемая строка больше второй; и наконец, нуль, если обе сравниваемые строки равны. Несмотря на то что метод Сопраге () возвращает нуль, если сравниваемые строки равны, для определения равенства символьных строк, как правило, лучше пользоваться методом Ес(иа1я () или же оператором = =.
Дело в том, что метод Соыраге () определяет равенство сравниваемых строк на основании порядка их сортировки. Так, если выполняется сравнение строк с учетом культурной среды, то обе строки могут оказаться одинаковыми по порядку их сортировки, но не равными по существу. По умолчанию равенство строк определяется в методе Ес)на1я ( ), исходя из порядковых значений символов и без учета культурной среды.
Следовательно, по умолчанию обе строки сравнивак1тся в этом методе на абсолютное, посимвольное равенство подобно тому, как это делается в операторе = =. Несмотря на большую универсальность метода соп1раге (), для простого порядкового сравнения символьных строк проще пользоваться методом Соыра геогбйпа1 () . И наконец, следует иметь в виду, что метод СоырагеТо () выполняет сравнение строк только с учетом культурной среды.
На момент написания этой книги отсутствовали перегружаемые варианты этого метода, позволявшие указывать другой способ сравнения символьных строк. В приведенной ниже программе демонстрируется применение методов Сопрете ( ), Ес(са1я (), Соырагеохг)1па1 (), а также операторов = = и ! = для сравнения символьных строк. Обратите внимание на то, что два первых примера сравнения наглядно демонстрируют отличия между сравнением строк с учетом культурной среды и порядковым сравнением в англоязычной среде. 792 Часть И. Библиотека С№ *ТТ1п0 вТгЗ = "ВеТа"; втг1псЗ вгт4 = "а1рпа"; вТгьпц вТг5 = "а1рпа, Ьега") тпТ гевп1Т; // Сначала продемонстрировать отличия между сравнением строк // с учетом культурной среды и порядковым сравнением. геви1Т = ЯТТ1псЗ.Совраге(вгг1, вгг2, ЯТТ1псЗСовраг1воп.спггепТСп1гпте)4 Сопво1е.йг1Те("Сравнение строк с учетом культурной среды: "); 1Е (гевп1Т < О) Сопво1е.йг1Теьтпе(вгт1 + " меньше " + втт2); е1ве 10 (гевп1Т > О) Сопво1е.йг1Теьтпе(вгг1 а " больше " + вгт2]4 е1ве Сопво1е.ИгтТеььпе(вгг1 + " равно " + вгг2); теэп1Т = ЯТТ1пя.совраге(вгт1, 'вгг2, ЯТТ1псЗСовраг1воп.бтб1па1); Сопво1е.йгьге(ТПорядковое сравнение строк: ")," 1К(геви1Т < О) Сопво1е.йтттеььпе(втт1 + " меньше " + втт2); е1ве 11(гевп1Т > О) Сопво1е.йг1Теь1пе(вст1 е " больше " + вТт2); е1ве Сопво1е.йггТеЬВпе(втт1 е " равно " + вгт4); // Испольэовать метод Совратебтб1па1().