Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Возвращаемое значение Что означает

Bool Equals(string strl, string str2)

Bool EndsWith(string str)

Bool StartsWith(string str)

Bool Equals(object obj)

Bool Equals(string str)

Например, если строка определена:

string str = "The end of time";

то

str.StartsWith("The")

возвращает true, но:

str.StartsWith(“the")

возвращает false.

Существует и статическая версия метода Equals:

Статические методы String (выборочно)

Например, вместо:

if (str == "New York")

можно использовать:

if (Equals(str, "New York"))

Методы вроде этого в основном предназначены для языков, в которых не предусмотрены операторы сравнения. Остальные методы сравнения строк, реализованные в классе String, возвращают целое значение в зависимости от того, является ли одна строка большей, меньшей или равной другой:

Значения, возвращаемые методами сравнения String

Отрицательное str1 < str2

0 str1 == str2

Положительное str1 > str2

 

Заметьте: возвращаются именно значения со знаком значения, а не -1, 0 или 1. Обычно определять, меньше ли одна строка, чем другая, требуется при сортировке строк. И это приводит к тому, что часто сравнение не должно выполняться на основе жестко определенных кодов символов. Например, символы е и ё должны быть меньше, чем F, независимо от кодов их символов. Сравнение такого типа называется лексическим сравнением в отличие от числового сравнения. Вот результат числового сравнения некоторых символов:

D < E < F < d < e < f < E < E < E < E < e < e < e < e

А вот результат лексического сравнения;

d < D < e < E < e < E < e < E < e < E < e < E < f < F

А что, лексическое сравнение нечувствительно к регистру? Обычно нет. Например, строка “New Jersey” считается меньшей, чем “new ferk”, несмотря на прописную “n” во второй строке. Но если строки полностью идентичны за исключением регистра, буквы в нижнем регистре считаются меньшими, чем буквы в верхнем, т. е. “the” меньше, чем “The”. Однако “Them” меньше, чем “then”.

Иначе говоря, по умолчанию лексическое сравнение чувствительно к регистру, только если возвращаемое значение при нечувствительном к регистру сравнении было бы 0. В противном случае сравнение нечувствительно к регистру. Лексическое сравнение вводит определенные соотношения между буквами, цифрами и другими символами. Обычно управляющие символы считаются меньшими, чем апостроф и тире, которые в свою очередь меньше пробельных символов. Затем идут знаки препинания и другие символы, цифры (от 0 до 9) и, наконец, буквы. Строка, равная null, меньше, чем пустая строка, а пустая строка меньше любой другой строки. Например:

"New" < "New York" < "Newark"

Нестатический метод СотраreTо выполняет лексическое сравнение экземпляра строки и аргумента:

Метод CompareTo класса String

int CompareTo(string str2)

int CompareTo(object obj2)

Первой строкой является строковый объект, для которого вы вызываете CompareTo например:

str1.CompareTo(str2)

Метод CompareTo с аргументом-объектом нужен для реализации интерфейса IComparable. Метод СотраreТо используется статическими методами ArrayBinarySearch и Array.Sort, которые я рассмотрю чуть позже. Все прочие методы сравнения — статические. Метод CompareOrdinal выполняет строгое числовое сравнение на основе значения символов:

Статический метод CompareOrdinal класса String

int CompareOrdinal(string str1, string str2)

int CompareOrdinal(string str1, int iStartIndex1, string str2,

int iStartIndex2, int iCount)

Статический метод Compare выполняет лексическое сравнение:

Статический метод Compare класса String

int Compare(string str1, string str2)

int Compare(string str1, string str2, bool bignoreCase)

int Compare(string str1, string str2, bool bignoreCase, CultureInfo ci)

int Compare(string str1, int iStartIndex1, string str2, int iStartIndex2,

int iCount)

int Compare(string str1, int iStartIndex1, string str2, int iStartIndex2,

int iCount, bool bignoreCase)

int Compare(string str1, int iStartIndex1, string str2, int iStartIndex2,

int iCount, bool bignoreCase, CultureInfo ci)

Аргумент bignoreCase влияет на возвращаемое значение, только если обе строки различаются лишь регистром. Чувствительные к регистру сравнения обычно полезнее при поиске, чем при сортировке. Вызовы:

string.Compare("e", "Е")

и

string.Compare("e", "E", false)

оба возвращают отрицательное значение, однако:

string.CompareC'e", "E", true)

возвращает 0. Вызовы:

string.Compare(''e", "e", bignoreCase)

и

string.Compare(''e", "E", bignoreCase)

всегда возвращают отрицательные значения независимо от аргумента bignoreCase. Ни один из определенных в классе String методов ни при каких условиях не сообщит, что “Andre” равно “Andre”.

<== предыдущая лекция | следующая лекция ==>
Сравнение строк | ОхОООС (прогон страницы) 0x2006 (шестая часть эм)
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 313; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.