- •Решение прикладных задач в среде c#
- •Введение
- •1. Введение в visual studio.Net. Структура .Net-приложений. Метод main(). Создание проектов с помощью vs.Net
- •Задание 1
- •Операции ввода/вывода. Формат вывода
- •Задание 2
- •Пространство имён system. Класс math. Преобразование типов данных
- •Задание 3.1
- •Задание 3.2
- •4. Операторы языка программирования с#.
- •4.1. Операторы языка программирования с#
- •If (логическое выражение)
- •2. If (выражение)
- •4.2. Операции отношения и условные логические операции
- •Операции отношения в c#
- •Условные логические операции
- •Задания 4
- •Организация циклов
- •Задание 5.2
- •Обработка одномерных массивов
- •6.1. Массивы
- •6.2. Одномерные массивы
- •Класс System.Array и оператор foreach
- •Основные элементы класса Array
- •Задание 6
- •Обработка двумерных массивов
- •7.1. Описания двумерного массива
- •7.2. Обработка исключительных ситуаций
- •Задание 7
- •Запись исходных данных в файл и чтение данных из файла. Цифровая фильтрация. Идентификация объекта управления
- •8.1. Данные для моделирования системы. Понятие файла данных
- •8.2. Объект FileStream для работы с файлами
- •8.3. Запись данных в файл. Класс StreamWriter
- •8.4. Чтение файла. Класс StreamReader
- •8.5. Цифровая фильтрация
- •8.6. Идентификация объекта управления
- •8.7. Определение постоянной времени объекта управления
- •Задание 8.1
- •Задание 8.2
- •Рекомендации
- •Задание 8.3
- •Строки типа string
- •Основные элементы класса System.String
- •Задание 9
Строки типа string
Тип string, предназначенный для работы со строками символов в кодировке Unicode, является встроенным типом С#. Ему соответствует базовый класс System.String библиотеки .NET. Создать строку можно несколькими способами:
string s; // инициализация отложена
string t = "qqq"; // инициализация строковым литералом
string u = new string(‘ ‘ ,20); // конструктор создает строку из 20 пробелов
char[] а = { '0','0', '0' }; // массив для инициализации строки
string v= new string( а ); // создание строки из массива символов
Для строк определены следующие операции:
присваивание(=);
проверка на равенство(==);
проверка на неравенство (!=);
обращение по индексу([]);
сцепление (конкатенация) строк(+).
Несмотря на то, что строки являются ссылочным типом данных, на равенство и неравенство проверяются не ссылки, а значения строк. Строки равны, если имеют одинаковое количество символов и совпадают посимвольно.
Обращаться к отдельному элементу строки по индексу можно только для получения значения, но не для его изменения. В классе System.String предусмотрено множество методов, полей и свойств, позволяющих выполнять со строками практически любые действия. Основные элементы класса приведены в таблице 9.2.
Таблица 9.2
Основные элементы класса System.String
Имя элемента |
Вид |
Описание |
Length |
Свойство |
Длина строки (количество символов) |
Empty |
Статическое поле |
Возвращается пустая строка. Свойство со статусом readonly |
Compare() |
Статический метод |
Сравнение двух строк. Реализации метода позволяют сравнивать как строки, так и подстроки. При этом можно учитывать регистр, особенности форматирования дат, чисел и т.д. |
CompareOrdinal() |
Статический метод |
Сравнение двух строк. Реализации метода позволяют сравнивать как строки, так и подстроки. Сравниваются коды символов |
Concat() |
Статический метод |
Конкатенация строк, метод допускает сцепление произвольного числа строк |
Copy() |
Статический метод |
Создается копия строки |
Format() |
Статический метод |
Выполняет форматирование строки в соответствии с заданными спецификациями формата |
Join() |
Статический метод |
Конкатенация массива строк в единую строку. При конкатенации между элементами массива вставляются разделители |
Insert() |
Метод |
Вставляет подстроку в заданную позицию |
Remove() |
Метод |
Удаляет подстроку в заданной позиции |
Replace() |
Метод |
Заменяет подстроку в заданной позиции на новую подстроку |
Substring() |
Метод |
Выделяет подстроку в заданной позиции |
IndexOf(), IndexOfAny(), LastIndexOf(), LastIndexOfAny() |
Методы |
Определяются индексы первого и последнего вхождения заданной подстроки или любого символа из заданного набора |
StartsWith(), EndsWith() |
Методы |
Возвращается true или false, в зависимости от того, начинается или заканчивается строка заданной подстрокой |
PadLeft(), PadRight() |
Методы |
Выполняет набивку нужным числом пробелов в начале и в конце строки |
Trim(), TrimStart(), TrimEnd() |
Методы |
Удаляются пробелы в начале и в конце строки, или только с одного ее конца |
ToCharArray() |
Метод |
Преобразование строки в массив символов |
Примеры использования основных элементов класса System.String:
String s="aaa";
int k=s.Length; // Возвращает длину строки. В k запишется 3
String s1="abcdefg", s2;
s2=s1.Substring(3, 2); // Поволяет извлечь из строки подстроку.
Console.WriteLine(s2); //Напечатается "de"
String s1="abcdefg", s2;
s2=s1.Insert(1, "xyz"); // Вставляет в строку другую строку.
Console.WriteLine(s2); //Напечатается "axyzbcdefg"
Первый параметр тут - это куда вставляем (нумерация, как всегда, с нуля), второй - что за строчку вставляем.
String s1="abcabcab", s2="bc", s3="zzz";
Console.WriteLine(s1.IndexOf(s2));//Позволяет найти в строке подстроку. Напечатается 1
Console.WriteLine(s1.IndexOf(s3)); //Напечатается -1
Этот метод возвращает номер позиции, на котором в строке находится передаваемая в качестве параметра подстрока. Если такой построки нет, то возвращается -1.
String s1="abcabcab", s2="bc", s3;
s3=s1.Replace(s2, "q"); // Производит замену в строке.
Console.WriteLine(s3); //Напечатается aqaqab
String s1="aRbRur";
s1=s1.ToLower();//переводят строку в нижний регистр
s1=s1.ToUpper();//переводят строку в верхний регистр
String s1=" ar brur ";
Console.Write(s1.Trim());//удаляет пробельные символы в начале и в конце строки.
В следующем примере строка разбивается на отдельные слова, затем производится обратная сборка текста:
string txt = "Все переменные, "
+ "используемые в программе, "
+ "должны быть описаны явным образом.";
Console.WriteLine(txt);
string[] Simpls, Words;
// делим сложное предложение на простые
Simpls = txt.Split(',');
for(int i = 0;i < Simpls.Length; i++)
Console.WriteLine(Simpls[i]);
// собираем сложное предложение
string txtjoin = string.Join(",",Simpls);
// делим сложное предложение на слова
Words = txt.Split(',', ' ');
for(int i = 0;i < Words.Length; i++)
Console.WriteLine("Words[{0}]= {1}",i, Words[i]);