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);

Console.WriteLine("Индекс первого вхождения подстроки <Один>: " + idx)

idx = str2.LastlndexOf("Один", StringComparison.Ordinal);

Console.WriteLine("Индекс последнего вхождения подстроки <0дин>: " + idx) ;

}

}

При выполнении этой программы получается следующий результат.

strl: Программировать в .NET лучше всего на С#.

Длина строки strl: 41

Вариант строки strl, набранный строчными буквами: программировать в .net лучше всего на с#.

Вариант строки strl, набранный прописными буквами: программировать в .net лучше всего на с#.

Вывод строки strl посимвольно.

Программировать в .NET лучше всего на С#.

strl == str2 strl != str3

Строка strl больше строки str3

Индекс первого вхождения подстроки <0дин>: О

Индекс последнего вхождения подстроки <0дин>: 13

Прежде чем читать дальше, обратите внимание на то, что метод Compare () вызы

Вается следующим образом.

result = string.Compare(strl, str3, StringComparison.CurrentCulture);

Как пояснялось ранее, метод Compare () объявляется как static, и поэтому он вызывается по имени, а не по экземпляру своего класса.

С помощью оператора + можно сцепить (т.е. объединить вместе) две строки. Например, в следующем фрагменте кода:

string strl = "Один";

string str2 = "Два";

string str3 = "Три";

string str4 = strl + str2 + str3;

переменная str4 инициализируется строкой "ОдинДваТри".

И еще одно замечание: ключевое слово string является псевдонимом класса System. String, определенного в библиотеке классов для среды .NET Framework, т.е. оно устанавливает прямое соответствие с этим классом. Следовательно, поля и методы, определяемые типом string, относятся непосредственно к классу System. String, в который входят и многие другие компоненты. Подробнее о классе System. String речь пойдет в части II этой книги.

Массивы строк

Аналогично данным любого другого типа, строки могут быть организованы в массивы. Ниже приведен соответствующий пример.

// Продемонстрировать массивы строк.

Using System;

class StringArrays { static void Main() {

string[] str = { "Это", "очень", "простой", "тест." };

Console.WriteLine("Исходный массив: "); for (int i=0; i < str.Length; i++)

Console.Write(str[i] + " ");

Console.WriteLine("\n");

// Изменить строку.

str[l] = "тоже";

str[3] = "до предела тест!";

Console.WriteLine("Видоизмененный массив: "); for (int i=0; i < str.Length; i++)

Console.Write(str[i] + " ");

}

}