Читаем Полное руководство. С# 4.0 полностью

В приведенном ниже примере программы демонстрируется несколько операций со строками. // Некоторые операции со строками. using System; using System.Globalization; class StrOps { static void Main { string str1 = "Программировать в .NET лучше всего на С#."; string str2 = "Программировать в .NET лучше всего на С#."; string str3 = "Строки в C# весьма эффективны."; string strUp, strLow; int result, idx; Console.WriteLine("str1: " + str1); Console.WriteLine("Длина строки str1: " + str1.Length); // Создать варианты строки str1, набранные // прописными и строчными буквами. strLow = str1.ToLower(CultureInfo.CurrentCulture); strUp = str1.ToUpper(CultureInfo.CurrentCulture); Console.WriteLine("Вариант строки str1, " + "набранный строчными буквами:\n " + strLow); Console.WriteLine("Вариант строки str1, " + "набранный прописными буквами:\n " + strUp); Console.WriteLine; // Вывести строку str1 посимвольно. Console.WriteLine("Вывод строки str1 посимвольно."); for (int i=0; i < str1.Length; i++) Console.Write(str1[i]); Console.WriteLine("\n"); // Сравнить строки способом порядкового сравнения. if(str1 == str2) Console.WriteLine("str1 == str2"); else Console.WriteLine("str1 != str2"); if(str1 == str3) Console.WriteLine("str1 == str3"); else Console.WriteLine("str1 != str3"); // Сравнить строки с учетом культурной среды. result = string.Compare(str3, str1, StringComparison.CurrentCulture); if(result == 0) Console.WriteLine("Строки str1 и str3 равны"); else if (result < 0) Console.WriteLine("Строка str1 меньше строки str3"); else Console.WriteLine("Строка str1 больше строки str3"); Console.WriteLine; // Присвоить новую строку переменной str2. str2 = "Один Два Три Один"; // Поиск подстроки. idx = str2.IndexOf("Один", StringComparison.Ordinal); Console.WriteLine("Индекс первого вхождения подстроки <Один>: " + idx); idx = str2.LastIndexOf("Один", StringComparison.Ordinal); Console.WriteLine("Индекс последнего вхождения подстроки <Один>: " + idx); } }

При выполнении этой программы получается следующий результат. str1: Программировать в .NET лучше всего на С#. Длина строки str1: 41 Вариант строки str1, набранный строчными буквами: программировать в .net лучше всего на c#. Вариант строки str1, набранный прописными буквами: программировать в .net лучше всего на c#. Вывод строки str1 посимвольно. Программировать в .NET лучше всего на С#. str1 == str2 str1 != str3 Строка str1 больше строки str3 Индекс первого вхождения подстроки <Один>: 0 Индекс последнего вхождения подстроки <Один>: 13

Прежде чем читать дальше, обратите внимание на то, что метод Compare вызы вается следующим образом. result = string.Compare(str1, 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[l] = "тоже"; str[3] = "до предела тест!"; Console.WriteLine("Видоизмененный массив: "); for(int i=0; i < str.Length; i++) Console.Write(str[i] + " "); } }

Вот какой результат дает выполнение приведенного выше кода. Исходный массив: Это очень простой тест. Видоизмененный массив: Это тоже простой до предела тест!

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT