Шрифт:
Интервал:
Закладка:
В приведенном ниже примере программы демонстрируется несколько операций со строками.
// Некоторые операции со строками.
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(CultureInfo.CurrentCulture);
strUp = strl.ToUpper (CultureInfo.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.LastIndexOf("Один", StringComparison.Ordinal);
Console.WriteLine("Индекс последнего вхождения подстроки <0дин>: " + idx) ;
}
}
При выполнении этой программы получается следующий результат.
strl: Программировать в .NET лучше всего на С#.
Длина строки str1: 41
Вариант строки str1, набранный строчными буквами:
программировать в .net лучше всего на с#.
Вариант строки str1, набранный прописными буквами:
программировать в .net лучше всего на с#.
Вывод строки str1 посимвольно.
Программировать в .NET лучше всего на С#.
str1 == str2
str1 != str3
Строка str1 больше строки str3
Индекс первого вхождения подстроки <0дин>: О
Индекс последнего вхождения подстроки <0дин>: 13
Прежде чем читать дальше, обратите внимание на то, что метод Compare() вызывается следующим образом.
result = string.Compare(strl, str3, StringComparison.CurrentCulture);
Как пояснялось ранее, метод Compare() объявляется как static, и поэтому он вызывается по имени, а не по экземпляру своего класса.
С помощью оператора + можно сцепить (т.е. объединить вместе) две строки. Например, в следующем фрагменте кода:
string str1 = "Один";
string str2 = "Два";
string str3 = "Три";
string str4 = str1 + 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[1] = "тоже";
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--)
Console.Write(digits[n[numdigits]] + " ");
Console.WriteLine() ;
}
}
Выполнение этой программы приводит к следующему результату.
Число: 1908
Число словами: один девять нуль восемь
В данной программе использован массив строк digits для хранения словесных обозначений цифр от 0 до 9. По ходу выполнения программы целое число преобразуется в слова. Для этого сначала получаются отдельные цифры числа, а затем они сохраняются в обратном порядке следования в массиве n типа int. После этого выполняется циклический опрос массива n в обратном порядке. При этом каждое целое значение из массива n служит в качестве индекса, указывающего на слова, соответствующие полученным цифрам числа и выводимые как строки.
- QT 4: программирование GUI на С++ - Жасмин Бланшет - Программирование
- C# для профессионалов. Том II - Симон Робинсон - Программирование
- ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. РУКОВОДСТВО ПО УПРАВЛЕНИЮ ДОКУМЕНТИРОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ - ГОССТАНДАРТ РОССИИ - Программирование
- Управление исходными текстами. Часть 1. Краткое руководство по CVS - Илья Рыженков - Программирование
- Гибкое управление проектами и продуктами - Борис Вольфсон - Программирование
- Каждому проекту своя методология - Алистэр Коуберн - Программирование
- Разработка ядра Linux - Роберт Лав - Программирование
- Как спроектировать современный сайт - Чои Вин - Программирование
- Творческий отбор. Как создавались лучшие продукты Apple во времена Стива Джобса - Кен Косиенда - Прочая околокомпьтерная литература / Интернет / Программирование
- Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - Александр Фролов - Программирование