Герберт Шилдт - C# 4.0 полное руководство - 2011
- Название:C# 4.0 полное руководство - 2011
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0 полное руководство - 2011 краткое содержание
C# 4.0 полное руководство - 2011 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Сравнение строк
Вероятно, из всех операций обработки символьных строк чаще всего выполняется сравнение одной строки с другой. Прежде чем рассматривать какие-либо методы сравнения строк, следует подчеркнуть следующее: сравнение строк может быть выполнено в среде .NET Framework двумя основными способами. Во-первых, сравнение может отражать обычаи и нормы отдельной культурной среды, которые зачастую представляют собой настройки культурной среды, вступающие в силу при выполнении программы. Это стандартное поведение некоторых, хотя и не всех методов сравнения. И во-вторых, сравнение может быть выполнено независимо от настроек культурной среды только по порядковым значениям символов, составляющих строку. Вообще говоря, при сравнении строк без учета культурной среды используется лексикографический порядок (и лингвистические особенности), чтобы определить, является ли одна строка больше, меньше или равной другой строке. При порядковом сравнении строки просто упорядочиваются на основании невидоизмененного значения каждого символа.
ПРИМЕЧАНИЕ
В силу отличий способов сравнения строк с учетом культурной среды и порядкового сравнения, а также последствий каждого такого сравнения настоятельно рекомендуется руководствоваться лучшими методиками, предлагаемыми в настоящее время корпорацией Microsoft. Ведь выбор неверного способа сравнения строк может привести к неправильной работе программы, когда она эксплуатируется в среде, отличающей от той, в которой она разработана.
Выбор способа сравнения символьных строк представляет собой весьма ответственное решение. Как правило и без всякий исключений, следует выбирать сравнение строк с учетом культурной среды, если это делается для целей отображения результата пользователю (например, для вывода на экран ряда строк, отсортированных в лексикографическом порядке). Но если строки содержат фиксированную информацию, не предназначенную для видоизменения с учетом отличий в культурных средах, например, имя файла, ключевое слово, адрес веб-сайта или значение, связанное с обеспечением безопасности, то следует выбрать порядковое сравнение строк. Разумеется, особенности конкретного разрабатываемого приложения будут диктовать выбор подходящего способа сравнения символьных строк.
В классе String предоставляются самые разные методы сравнения строк, перечисленные в табл. 22.1. Наиболее универсальным среди них является метод Compare (). Он позволяет сравнивать две строки полностью или частично, с учетом или без учета регистра, способа сравнения, определяемого параметром типа StringComparison, а также сведений о культурной среде, предоставляемых с помощью параметра типа Culturelnfo. Те перегружаемые варианты метода Compare (), которые не содержат параметр типа StringComparison, выполняют сравнение символьных строк с учетом регистра и культурной среды. А в тех перегружаемых его вариантах, которые не содержат параметр типа Culturelnfo, сведения о культурной среде определяются текущей средой выполнения. В примерах программ, приведенных в этой главе, параметр типа Culturelnfo не используется, а большее внимание уделяется использованию параметра типа StringComparison.
Таблица 22.1. Методы сравнения символьных строк
Метод
Назначение
public static int
Сравнивает строку strA со строкой strB. Возвращает поло
Compare(string strA,
жительное значение, если строка strA больше строки strB ;
string strB)
отрицательное значение, если строка strA меньше строки strB ; и нуль, если строки strA и strB равны. Сравнение выполняется с учетом регистра и культурной среды
public static int
Сравнивает строку strA со строкой strB. Возвращает поло
Compare(string strA,
жительное значение, если строка strA больше строки strB ;
string strB, bool
отрицательное значение, если строка strA меньше строки
ignoreCase)
strB ; и нуль, если строки strA и strB равны. Если параметр ignoreCase принимает логическое значение true,то при сравнении не учитываются различия между прописным и строчным вариантами букв. В противном случае эти различия учитываются. Сравнение выполняется с учетом культурной среды
public static int
Сравнивает строку strA со строкой strB. Возвращает положи
Compare(string
тельное значение, если строка strA больше строки strB ; отрица
strA, string strB,
тельное значение, если строка strA меньше строки strB-, и нуль,
StringComparison
если строки strAи strB равны. Параметр comparisonType
comparisonType)
определяет конкретный способ сравнения строк
public static int.
Сравнивает строку strA со строкой strB, используя информа
Compare(string
цию о культурной среде, определяемую параметром culture.
strA, string strB,
Возвращает положительное значение, если строка strA боль
bool ignoreCase,
ше строки strB ; отрицательное значение, если строка strA
Culturelnfo culture)
меньше строки strB ; и нуль, если строки strA и strB равны. Если параметр ignoreCase принимает логическое значение true,то при сравнении не учитываются различия между прописным и строчным вариантами букв. В противном случае эти различия учитываются. Класс Culturelnfoопределен в пространстве имен System.Globalization
Метод
Назначение
public static int
Сравнивает части строк strA и strB. Сравнение начинается
Compare(string strA,
со строковых элементов strA[ indexA] и strB[indexB]
int indexA, string
и включает количество символов, определяемых параметром
strB, int indexB,
length. Метод возвращает положительное значение, если
int length)
часть строки strA больше части строки strB] отрицательное значение, если часть строки strA меньше части строки strB ; и нуль, если сравниваемые части строк strA и strB равны. Сравнение выполняется с учетом регистра и культурной среды
public static int
Сравнивает части строк strA и strB. Сравнение начинается
Compare(string strA,
Интервал:
Закладка: