- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания C# 4.0: полное руководство - Герберт Шилдт
Шрифт:
Интервал:
Закладка:
В приведенном ниже примере программы демонстрируется несколько операций со строками.
// Некоторые операции со строками.
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 служит в качестве индекса, указывающего на слова, соответствующие полученным цифрам числа и выводимые как строки.