Помощь в учёбе, очень быстро...
Работаем вместе до победы

Сравнение строк. 
Программирование. 
Базовый курс с#

РефератПомощь в написанииУзнать стоимостьмоей работы

Первые два параметра — сравниваемые строки. Третий параметр указывает на необходимость учитывать регистр символов строк. Если он равен true, то регистры не учитываются и строки «New» и «nEw» будут считаться равными. Четвертый параметр — объект класса System. Globalization. Culturelnfo — позволяет указать алфавит, который необходимо использовать при лексикографическом сравнении строк. Для… Читать ещё >

Сравнение строк. Программирование. Базовый курс с# (реферат, курсовая, диплом, контрольная)

Для объектов класса string определены только две операции сравнения = = и ! =. Если необходимо сравнивать строки по их упорядоченности, например, в лексикографическом порядке, то этих двух операций недостаточно. Поэтому часто используют нестатический метод CompareToO и статический метод класса string (точнее набор перегруженных методов) с именем Compare, позволяющие сравнивать строки или их фрагменты. Так как сравнение и сортировка строк очень важны в задачах обработки текстовой информации, то рассмотрим два варианта метода Compare ().

Наиболее простой метод имеет следующий заголовок:

int static Compare (string, string).

Сравнивая две строки, использованные в качестве аргументов, метод возвращает значение 0, если строки равны. Если первая строка лексикографически меньше второй — возвращается отрицательное значение. В противном случае возвращаемое значение положительно.

В следующем фрагменте кода определен массив ссылок на строки, из него выбирается и присваивается переменной res ссылка на лексикографически наибольшую строку:

string[] eng = {" one", «two», «three», «four» };

string res = eng[0];

foreach (string num in eng).

if (string.Compare (res, num) < 0) res = num;

Значением строки, связанной со ссылкой-переменной res, будет «two» .

Проиллюстрированная форма метода Compare () оценивает лексикографическую упорядоченность, соответствующую английскому алфавиту. Следующий вариант этого метода позволяет использовать разные алфавиты.

int static Compare (string, string, Boolean, Culturelnfo).

Первые два параметра — сравниваемые строки. Третий параметр указывает на необходимость учитывать регистр символов строк. Если он равен true, то регистры не учитываются и строки «New» и «nEw» будут считаться равными. Четвертый параметр — объект класса System. Globalization. Culturelnfo — позволяет указать алфавит, который необходимо использовать при лексикографическом сравнении строк. Для построения объекта, который может быть использован в качестве аргумента, заменяющего четвертый параметр, используют конструктор класса Culturelnfo (string). Аргумент конструктора — строка, содержащая условное обозначение нужного алфавита. Точнее сказать, обозначается не алфавит, а культура (Culture), которой принадлежит соответствующий язык. Для обозначения национальных культур приняты имена и коды, таблицу которых можно найти в литературе и документации. Мы в наших примерах будем использовать два алфавита: английский (имя культуры «еп», код культуры 0×0009) и русский («ш» и 0×0019).

В следующем фрагменте кода, который построен по той же схеме, что и предыдущий, определен массив ссылок на строки с русскими названиями представителей семейства тетеревиных из отряда куриных. Из массива выбирается ссылки на лексикографически наименьшую строку, т. е. после упорядочения по алфавиту расположенную в начале списка.

string[] hens = {" Куропатка белая", «Куропатка тундровая», «Тетерев», «Глухарь», «Рябчик» };

string res = hens[0]; foreach (string hen in hens).

if (string.Compare (res, hen, true,.

new System.Globalization.CultureInfo («ru»)) > 0) res = hen;

Console.WriteLine (res);

Результат, выводимый на консоль:

Глухарь Обратите внимание, что четвертый параметр метода Compare () заменен в вызове безымянным объектом класса Culturelnfo, сформированным конструктором класса в выражении с операцией new. Аргумент конструктора — литерная строка «ru» — обозначение нужного алфавита (в данном примере — русского языка). Если возвращаемый результат больше нуля, т. е. первая строка, именуемая ссылкой res, лексикографически больше второй, то вторая строка, связанная со ссылкой hen, принимается в качестве претендента на наименьшее значение.

Показать весь текст
Заполнить форму текущей работой