C# 4.0 полное руководство - 2011
Шрифт:
Объекты типа 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)
Возвращает
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 или строковыми операторами.
В приведенном ниже примере программы демонстрируется несколько операций со строками.
// Некоторые операции со строками.
using System;
using System.Globalization;
class StrOps {
static void Main {
string strl = "Программировать в .NET лучше всего на С#.";
string str2 = "Программировать в .NET лучше всего на С#.";
string str3 = "Строки в C# весьма эффективны.";
string strUp, strLow;
int result, idx;
Console.WriteLine("strl: " + strl);
Console.WriteLine("Длина строки strl: " + strl.Length);
// Создать варианты строки strl, набранные // прописными и строчными буквами.
strLow = strl.ToLower(Cirlturelnfo.CurrentCulture) ; strUp = strl.ToUpper (Culturelnfo.CurrentCulture);
Console.WriteLine("Вариант строки strl, " +
"набранный строчными буквами:\n " + strLow); Console.WriteLine("Вариант строки strl, " +
"набранный прописными буквами:\n " + strUp);
Console.WriteLine;
// Вывести строку strl посимвольно.
Console.WriteLine("Вывод строки strl посимвольно.") ; for (int i=0; i < strl.Length; i++)
Console.Write(strl[i]);
Console.WriteLine("\n");
// Сравнить строки способом порядкового сравнения, if (strl == str2)
Console.WriteLine("strl == str2"); else
Console.WriteLine("strl != str2"); if (strl == str3)
Console.WriteLine("strl == str3"); else
Console.WriteLine("strl != str3");
// Сравнить строки с учетом культурной среды.
result = string.Compare(str3, strl, StringComparison.CurrentCulture) ; if(result == 0)
Console.WriteLine("Строки strl и str3 равны"); else if (result < 0)
Console.WriteLine("Строка strl-меньше строки str3"); else
Console.WriteLine("Строка strl больше строки str3");
Console.WriteLine;
// Присвоить новую строку переменной str2. str2 = "Один Два Три Один";
// Поиск подстроки.
idx = str2.IndexOf("Один", StringComparison.Ordinal);
Невеста драконьего принца
Любовные романы:
любовно-фантастические романы
рейтинг книги
Мастер Разума III
3. Мастер Разума
Фантастика:
героическая фантастика
попаданцы
аниме
рейтинг книги
Недотрога для темного дракона
Фантастика:
юмористическое фэнтези
фэнтези
сказочная фантастика
рейтинг книги
Идеальный мир для Лекаря 26
26. Лекарь
Фантастика:
аниме
фэнтези
рейтинг книги
Измена. Мой заклятый дракон
Любовные романы:
любовно-фантастические романы
рейтинг книги
Случайная свадьба (+ Бонус)
Любовные романы:
современные любовные романы
рейтинг книги
Попаданка для Дракона, или Жена любой ценой
Любовные романы:
любовно-фантастические романы
рейтинг книги
1941: Время кровавых псов
1. Всеволод Залесский
Приключения:
исторические приключения
рейтинг книги
Отрок (XXI-XII)
Фантастика:
альтернативная история
рейтинг книги
