C# 4.0 полное руководство - 2011
Шрифт:
// Создать и вывести символьную строку.
using System;
class StringDemo { static void Main {
char[] charray ={'Э', 'т1, 'o', 1 ', 'с', ' t', 1 p', 'o', 'к', 'a',
1 •1} ;
string strl = new string(charray);
string str2 = "Еще одна строка.";
Console.WriteLine(strl);
Console.WriteLine(str2);
}
}
Результат выполнения этой программы приведен ниже.
Это строка.
Еще одна строка.
Обращение со строками
Класс типа string содержит ряд методов для обращения со строками. Некоторые
Как правило и за рядом исключений, для сравнения символьных строк с учетом культурной среды (т.е. языковых и региональных стандартов) применяется способ StringComparison . CurrentCulture. Если же требуется сравнить строки только на основании значений их символов, то лучше воспользоваться способом StringComparison . Ordinal, а для сравнения строк без учета регистра — одним из двух способов: StringComparison . CurrentCulturelgnoreCase или StringComparison . OrdinallgnoreCase. Кроме того, можно указать сравнение строк без учета культурной среды (подробнее об этом — в главе 22).
Обратите внимание на то, что метод Compare объявляется в табл. 7.1 как static. Подробнее о модификаторе static речь пойдет в главе 8, а до тех пор вкратце поясним, что он обозначает следующее: метод Compare вызывается по имени своего класса, а не по его экземпляру. Следовательно, для вызова метода Compare служит следующая общая форма:
результат = string.Compare(strl, str2, способ);
где способ обозначает конкретный подход к сравнению символьных строк.
ПРИМЕЧАНИЕ
Дополнительные сведения о способах сравнения и поиска символьных строк, включая и особое значение выбора подходящего способа, приведены в главе 22, где подробно рассматривается обработка строк.
Обратите также внимание на методы ToUpper () и ToLower , преобразующие содержимое строки в символы верхнего и нижнего регистра соответственно. Их формы, представленные в табл. 7.1, содержат параметр Culture Inf о, относящийся к классу, в котором описываются атрибуты культурной среды, применяемые для сравнения. В примерах, приведенных в этой книге, используются текущие настройки культурной среды (т.е. текущие языковые и региональные стандарты). Эти настройки указываются при передаче методу аргумента Culturelnf о . CurrentCulture. Класс Culturelnfо относится к пространству имен System. Globalization. Любопытно, имеются варианты рассматриваемых здесь методов, в которых текущая культурная среда используется по умолчанию, но во избежание неоднозначности в примерах из этой книги аргумент Culturelnf о . CurrentCulture указывается явно.
Объекты типа string содержат также свойство Length, где хранится длина строки.
Таблица 7.1. Некоторые общеупотребительные методы обращения со строками
Описание
Метод
static int Compare(string strA, string strB, StringComparison comparisonType)
bool Equals(string value, StringComparison comparisonType)
int IndexOf(char value)
int IndexOf(string value, StringComparison comparisonType)
Возвращает отрицательное значение, если строка strA меньше строки strB; положительное значение, если строка strA больше строки strB; и нуль, если сравниваемые строки равны. Способ сравнения определяется аргументом comparisonType Возвращает логическое значение true, если вызывающая строка имеет такое же значение, как и у аргумента value. Способ сравнения определяется аргументом comparisonType Осуществляет поиск в вызывающей строке первого вхождения символа, определяемого аргументом value. Применяется порядковый способ поиска. Возвращает индекс первого совпадения с искомым символом или -1, если он не обнаружен .Осуществляет поиск в вызывающей строке первого вхождения подстроки, определяемой аргументом value. Возвращает индекс первого совпадения с искомой подстрокой или -1, если она не обнаружена. Способ поиска определяется аргументом comparisonType int LastlndexOf(char value)
int LastlndexOf(string value, StringComparison comparisonType)
string ToLower(Culturelnfo. CurrentCulture culture)
string ToUpper(Culturelnfo. CurrentCulture culture)
Осуществляет поиск в вызывающей строке последнего вхождения символа, определяемого аргументом value. Применяется порядковый способ поиска. Возвращает индекс последнего совпадения с искомым символом или -1, если он не обнаружен Осуществляет поиск в вызывающей строке последнего вхождения подстроки, определяемой аргументом value. Возвращает индекс последнего совпадения с искомой подстрокой или -1, если она не обнаружена. Способ пойска определяется аргументом comparisonType
Возвращает вариант вызывающей строки в нижнем регистре. Способ преобразования определяется аргументом culture
Возвращает вариант вызывающей строки в верхнем регистре. Способ преобразования определяется ар-гументом culture
Отдельный символ выбирается из строки с помощью индекса, как в приведенном ниже фрагменте кода.
string str = "тест";
Console.WriteLine(str [0] ) ;
В этом фрагменте кода выводится символ "т", который является первым в строке "тест". Как и в массивах, индексирование строк начинается с нуля. Следует, однако, иметь в виду, что с помощью индекса нельзя присвоить новое значение символу в строке. Индекс может служить только для выборки символа из строки.
Для проверки двух строк на равенство служит оператор ==. Как правило, если оператор == применяется к ссылкам на объект, то он определяет, являются ли они ссылками на один и тот же объект. Совсем иначе обстоит дело с объектами типа string. Когда оператор == применяется к ссылкам на две строки, он сравнивает содержимое этих строк. Это же относится и к оператору ! =. В обоих случаях выполняется порядковое сравнение. Для проверки двух строк на равенство с учетом культурной среды служит метод Equals , где непременно нужно указать способ сравнения в виде аргумента StringComparison . CurrentCulture. Следует также иметь в виду, что метод Compare служит для сравнения строк с целью определить отношение порядка, например для сортировки. Если же требуется проверить символьные строки на равенство, то для этой цели лучше воспользоваться методом Equals или строковыми операторами.