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] + " ");
}
}