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] + " ");
}
}
Вот какой результат дает выполнение приведенного выше кода.
Исходный массив:
Это очень простой тест.
Видоизмененный массив:
Это тоже простой до предела тест!
Рассмотрим более интересный пример. В приведенной ниже программе целое число выводится словами. Например, число 19 выводится словами "один девять".
// Вывести отдельные цифры целого числа словами, using System;
class ConvertDigitsToWords { static void Main() { int num; int nextdigit; int numdigits; int[] n = new int[20];
string[] digits = { "нуль", "один", "два",
"три", "четыре", "пять",
"шесть", "семь", "восемь",
"девять" };
num =1908;
Console.WriteLine("Число: " + num);
Console.Write("Число словами: ");
nextdigit = 0; numdigits = 0;
// Получить отдельные цифры и сохранить их в массиве п.
// Эти цифры сохраняются в обратном порядке, do {
nextdigit = num % 10; n[numdigits] = nextdigit; numdigits++; num = num /10;
} while(num > 0); numdigits--;
// Вывести полученные слова.
for( ; numdigits >= 0; numdigits--)
Читать дальше