
- •Уровни языков программирования
- •Язык c#
- •Переменные и константы
- •Числа без знака
- •Числа со знаком
- •Числа с плавающей точкой
- •Текстовые символы
- •Логический тип данных
- •Выражения и операторы с#
- •Составные операторы
- •Поразрядные операторы
- •Логические операторы
- •Операторы отношения
- •Приоритеты операторов
- •Работа с консолью
- •Преобразование типов
- •Оператор явного преобразования типов
- •Преобразование типов констант
- •Алгоритмизация и решение задач Понятие алгоритма
- •Словесное описание
- •Блок-схема
- •Описание Блоков
- •Псевдокод
- •Реализация алгоритмических конструкций в с# Следование
- •Ветвление
- •Ветвление и условный оператор
- •Вложенные условия
- •Применение логических операций
- •Цикл Пока
- •Цикл Делать-Пока
- •Цикл с параметром
- •Прерывание и возобновление цикла
- •Оператор goto
- •Особые виды циклов
- •Сложные типы данных – массивы чисел и символов Одномерные массивы
- •Использование оператора foreach
- •Типы задач обработки одномерных числовых массивов
- •Многомерные массивы
- •Типы задач обработки двумерных числовых массивов
- •Невыровненные (ступенчатые) массивы
- •Обработка массива символов
- •Работа с текстовыми строками
- •Базовые операции со строками
- •Методы типа string
- •Форматирование текстовых строк
- •Функции
- •Описание и использование функций
- •Возвращаемые значения
- •Передача параметров
- •Массивы параметров
- •Передача параметров по ссылке и по значению
- •Выходные параметры
- •Область действия переменных
- •Глобальные переменные
- •Область действия переменных и управляющие конструкции
- •Рекурсия
- •Структуры
- •Работа с текстовыми файлами
- •Работа с двоичными файлами
Базовые операции со строками
Строки символов описываются, инициализируются и присваиваются друг другу подобно другим типам данных C#:
string svarl; //Объявляем строковую переменную
string svar2 = "строка"; //Объявляем и инициализируем строку
svarl = svar2; //Присваиваем значение строке
svarl = "строка"; //Присваиваем значение строке
svarl = svar2 + "строка"; //Сцепляем две строки
int len = svarl.Length; //Получаем длину строки
Строковая переменная, если при ее описании не задается начальное значение, инициализируется специальным значением null (т. е. отсутствие значения). Это совсем не то же самое, что нулевая, или пустая строка. Приведенные ниже строки С# приведут к ошибке времени выполнения:
string si; //Создается строка со значением null
si += "abc"; //Неверно, выполнено не будет!!
Это произойдет потому, что левый операнд в операции сцепления строк не имеет значения. Если, однако, переписать строки следующим образом:
string s2 = "";
s2 += "abc";
то они будут успешно выполнены, и переменная s2 получит в итоге значение "abc".
Методы типа string
Тип string включает целый ряд предопределенных методов. Выборка наиболее полезных методов приведена в форме для класса string. Полную информацию о методах string можно найти в описании класса System.String.
Существуют методы, проверяющие, начинается или заканчивается одна строка другой:
bool s1.StartsWith(string s2); // true, если s1 начинается с s2
bool s1.EndsWith(string s2); // true, если s1 заканчивается строкой s2
Группа методов поиска с общим именем IndexOf позволяют определить позицию заданного символа внутри строки или одной строки внутри другой (ищется первое вхождение символа или строки, если такого нет, возвращается -1):
int s1.IndexOf(char ch); //Ищет символ ch внутри s1
int s1.IndexOf(char ch, int pos); //To же, но начиная с позиции pos
int s1.IndexOf(string s2); //Ищет строку s2 внутри s1
int s1.IndexOf(string s2, int pos); //To же, но начиная с позиции pos
Метод Substring позволяет выделить из строки любую ее часть:
string s1.Substring(int pos); //Извлекает подстроку из s1, начиная с
// заданной позиции до конца строки
string s1.Substring(int pos, int len); //To же, но подстрока берется с
// заданной позиции и имеет указанную длину
Существуют специальные методы для преобразования регистра символов строки:
string s1.ToLower(); //Копирует s1, преобразуя буквы в строчные
string s1.ToUpper(); //Копирует s1, преобразуя буквы в прописные
Три метода позволяют убрать из строки ненужные пробелы:
string s1.TrimStart(); //Копирует s1, убирая начальные пробелы
string s1.TrimEnd(); //Копирует s1, убирая завершающие пробелы
string s1.Trim(); //Копирует si, убирая начальные и завершающие пробелы
Можно при необходимости также добавить в строку пробелы справа или слева до необходимой длины length:
string s1.PadLeft(int length); // Добавляет пробелы слева
string s1.PadRight(int length); // Добавляет пробелы справа
Существует также метод, который позволяет разбить строку на слова, ограниченные пробельными символами (пробелами или символами табуляции) и поместить результат в массив строк:
string[] s1.Split(); //Расщепляет s1 на слова, по одному на элемент массива
Обратите внимание, что рассматриваемые в данном разделе методы на самом деле не изменяют ту строку, к которой применяется. Напротив, использование этих методов для некоторой строки приводит к созданию новой строки, которую можно сравнить с какой-либо другой строкой или присвоить другой переменной. В роли этой переменной может выступать переменная, к которой применялся данный метод:
userResponse = userResponse.ToLower();