|
||||||||||||||
Что еще надо сказать о строках. ⇐ ПредыдущаяСтр 3 из 3 Что еще надо сказать о строках. При сравнении строк явном и не явном, может быть задействовано два метода – с учетом лингвистических правил и без их учета. В первом случае задействуется такой элемент языка как “Культура” (класс CultureInfo), который определяет линвистические правила, порядок алфавита и прочее. Существует “культура” по-умолчанию, которую можно найти в свойствах потока Thread.CurrentCulture, но ее можно заменить, используя соответствующую перегрузку методов. Во втором случае сравнение идет на уровне битов – сравниваются коды символов (этот метод сравнения называется Ordinal). В любом случае, вы, как правило, можете указать, учитывать ли регистр символов при сравнении. Класс String является reference-типом. Поэтому строки хранятся в куче, и мы можем присвоить строковой переменной null. Но при этом операция точного сравнения строк (оператор == и метод Equals), сравнивает не ссылки (как обычно это происходит для ссылочных типов), а реальные значения строк. Для указания пустой строки лучше всего использовать статическое поле String.Empty. Для соединения строк в одну можно использовать оператор “+”, при этом компилятор заменит его вызовом метода Concat. Для доступа к отдельным символам строки можно использовать оператор индекса: var disk = @"c:\windows"[0] System.String даже реализует IEnumerable, поэтому можно перебирать буквы любой строки в циклах foreach: foreach (var c in "Привет мир!") При указании в коде строки константой, можно использовать escape-последовательности, чтобы вставлять специальные символы (они начинаются всегда со знака “\”):
Касательно вставки символа новой строки, лучше не делать это через escape, а использовать константу Environment.NewLine (т. к. она может отличаться на разных платформах). Если вам не нужно вставлять специальных символов, таких как табуляция, можно указывать строковую константу с использованием символа @, тогда можно будет вставлять символы “’” и “\” напрямую, а двойную кавычку, указывая две двойных кавычки. Это полезно, например, при указании пути к файлу: var path = @"c:\windows"; Как я уже сказал, System.String не подходит для выполнения одновременно большого множества операций над строками, т. к. при этом будет быстро забиваться память. Для таких операций следует использовать классы StringBuilder и RegEx. Последний класс также обладает гораздо большими возможностями по анализу текста и поиску. Очень часто, возникает необходимость конвертировать строку в число или дату и обратно. System.String реализует IConvertable, но лучше для этих целей использовать класс Convert. Кроме того, большая часть числовых классов и классов дат имеют методы Parse и TryParse, с помощью которых также можно производить конвертацию: var a = Convert.ToInt32("356"); Наконец, последнее. Любой объект .NET имеет метод ToString() с помощью которого можно получить текстовое представление объекта. Обычно, вы получите просто имя класса, но многие классы переопределяют этот метод и возвращают текстовое представление своего содержимого.
|
||||||||||||||
|