Строковый тип string. Класс System. String, основные элементы
Название | Вид | Описание | |
Compare | Статический метод | Сравнение двух строк в лексикографическом (алфавитном) порядке. Разные реализации метода позволяют сравнивать строки и подстроки с учетом и без учета регистра и особенностей национального представления дат и т. д. | |
CompareOrdinal | Статический метод | Сравнение двух строк по кодам символов. Разные реализации метода позволяют сравнивать строки и подстроки | |
CompareTo | Метод | Сравнение текущего экземпляра строки с другой строкой | |
Concat | Статический метод | Конкатенация строк. Метод допускает сцепление произвольного числа строк | |
Copy | Статический метод | Создание копии строки | |
Empty | Статическое поле | Пустая строка (только для чтения) | |
Format | Статический метод | Форматирование в соответствии с заданными спецификаторами формата | |
IndexOf, IndexOfAny, LastIndexOf, LastIndexOfAny | Методы | Определение индексов первого и последнего вхождения заданной подстроки или любого символа из заданного набора | |
Insert | Метод | Вставка подстроки в заданную позицию | |
Intern, IsInterned | Статическиеметоды | Возвращает ссылку на строку, если такая уже существует. Если строки нет, Intern добавляет строку во внутренний пул, IsIntern возвращает null | |
Join | Статический метод | Слияние массива строк в единую строку. Между элементами массива вставляются разделители (см. далее) | |
Length | Свойство | Длина строки (количество символов) | |
PadLeft, PadRight | Методы | Выравнивание строки по левому или правому краю путем вставки нужного числа пробелов в начале или в конце строки | |
Remove | Метод | Удаление подстроки из заданной позиции | |
Replace | Метод | Замена всех вхождений заданной подстроки или символа новой подстрокой или символом | |
Split | Метод | Разделение строки на элементы, используя заданные разделители. Результаты помещаются в массив строк | |
StartsWith, EndsWith | Методы | Возвращает true или false в зависимости от того, начинается или заканчивается строка заданной подстрокой | |
Substring | Метод | Выделение подстроки, начиная с заданной позиции | |
ToCharArray | Метод | Преобразование строки в массив символов | |
ToLower,ToUpper | Методы | Преобразование символов строки к нижнему или верхнему регистру | |
Trim, TrimStart, TrimEnd | Методы | Удаление пробелов в начале и конце строки или только с одного ее конца (обратные по отношению к методам PadLeft и PadRight действия) |
Пример:
int ks=5;
string s,s1;
string [] sl=new string [ks];
for (int k=1; k<ks; k++)
{
Console.WriteLine(“Введите слово массива”);
sl[k]=Console.ReadLine();
}
s=string.Join(“:”, sl);
Console.WriteLine(s);
s1=s.Replace(“:”,”,”);
Console.WriteLine(s1);
s=s1.Substring(1);
Console.WriteLine(s);
s1=s.ToUpper();
Console.WriteLine(s1);
}
}
}
Вопрос 40
Форматирование строк
В общем виде формат задается следующим образом:
{n[,m[:спецификатор_формата[число]]}
Здесь n-номер параметра. Параметр m определяет минимальную ширину поля, которое отводится под выводимое значениеСпецификаторы формата для строк
Спецификатор | Описание |
С или с | Вывод значений в денежном (currency) формате. По умолчанию перед выводимым значением подставляется символ доллара ($). Непосредственно после спецификатора можно задать целое число, определяющее длину дробной части. |
D или d | Вывод целых значений. Непосредственно после спецификатора можно задать целое число, определяющее ширину поля вывода. Недостающие места заполняются нулями. |
Е или е | Вывод значений в экспоненциальном формате. Непосредственно после спецификатора можно задать целое число, определяющее длину дробной части. Минимальная длина порядка — 3 символа. |
F или f | Вывод значений с фиксированной точностью. Непосредственно после спецификатора можно задать целое число, определяющее длину дробной части. |
G или g | Формат общего вида. Применяется для вывода значений с фиксированной точностью или в экспоненциальном формате в зависимости от того, какой формат требует меньшего количества позиций. Для различных типов величин по умолчанию используется разная ширина вывода, например, для single - 7 позиций, для byte и sbyte - 3, для decimal – 29. |
N или n | Вывод значений в формате d, ddd, ddd. ddd..., то есть группы разрядов разделяются разделителями, соответствующими региональным настройкам. Непосредственно после спецификации можно задать целое число, определяющее длину дробной части. |
Р или р | Вывод числа в процентном формате (число, умноженное на 100, после которого выводится знак %). |
R или r | Отмена округления числа при преобразовании в строку. |
X или х | Вывод значений в шестнадцатеричном формате. |
Если указан знак #, на этом месте будет выведена цифра числа, если она не равна нулю. Если указан 0, будет выведена любая цифра, в том числе и 0.
Пользовательский шаблон может также содержать текст, который в общем случае заключается в апострофы.
Вопрос 41
Строки типа StringBuilder
В том случае, когда строку все же необходимо изменить, для работы со строками удобно применять другой класс — класс StringBuilder. Данный класс позволяющий изменять значение своих экземпляров, определен в пространстве имен System.Text.
При создании экземпляра обязательно использовать операцию new и конструктор, например:
StringBuilders=newStringBuilder();
В общем случае в конструкторе класса могут присутствовать два вида параметров. Первый вид параметров используется для инициализации строки, второй — для определения объема памяти (размер буфера), отводимой под экземпляр, например:
StringBuilder stud=new StringBuilder (“student”, 50);
ОсновныеэлементыклассаSystem.Text.StringBuilder
Название Вид Описание
Append Метод Добавление в конец строки. Разные варианты метода позволяют добавлять в строку величины любых встроенных типов, массивы символов, строки и подстроки типа string
AppendFormat Метод Добавление форматированной строки в конец строки
Capacity Свойство Получение или установка емкости буфера. Если устанавливаемое значение меньше текущей длины строки или больше максимального, генерируется исключение ArgumentOutOfRangeException
Insert Метод Вставка подстроки в заданную позицию
Length Свойство Длина строки (количество символов)
MaxCapacity Свойство Максимальный размер буфера
Remove Метод Удаление подстроки из заданной позиции
Replace Метод Замена всех вхождений заданной подстроки или символа новой подстрокой или символом
ToString Метод Преобразование в строку типа string
using System;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
string s;
StringBuilder w = new StringBuilder();
w.Append( "снег,лед,гололед,дождь " );
Console.WriteLine(w);
w.Insert(5,"солнце,");
Console.WriteLine(w);
Console.WriteLine("Введитепостроку");
s=Console.ReadLine();
w.Insert(0,s);
Console.WriteLine(w);
w.Replace( ",", ";" );
Console.WriteLine(w);
}
}
}
Вопрос 42
Классы, основные понятия, спецификаторы
Класс является основой языка C#, так как все действия в любой программе на этом языке происходят внутри класса. Класс является типом данных, определяемым пользователем. Он должен представлять собой единую логическую сущность, например, являться моделью реального объекта или процесса.
Общее определение класса:
[атрибуты][спецификаторы] class имя_класса [: предки]
{тело_класса}
Обязательным является только ключевое слово class а также имя (заданное по общим правилам языка) и тело класса (список его членов), заключенное в фигурные скобки. Если класс не содержит ни одного члена, то список класса будет пустым. Например:
class Prim{}
Спецификаторы доступа класса
Таблица1- Спецификаторы доступа класса
№ | Спецификатор | Описание |
public | Доступ не ограничен. | |
protected | Используется для вложенных классов. Доступ только из элементов данного и производных классов. | |
internal | Доступ только из данной программы (сборки). | |
protectedinternal | Доступ только из данного и производных классов или из данной программы (сборки). | |
private | Используется для вложенных классов. Доступ только из элементов класса, внутри которого описан данный класс. |
Вопрос 43
Данные: поля и константы
Данные, содержащиеся в классе, могут быть переменными или константами и задаются в соответствии с уже рассмотренными правилами. Переменные, описанные в классе, называются полями класса. Синтаксис описания элемента данных:
[ атрибуты ] [ спецификаторы ] [ const ] тип имя [ = начальное_значение]
В данном описании обязательными элементами являются типи имя.
Спецификаторы полей и констант класса
№ | Спецификатор | Описание |
new | Новое описание поля, скрывающее унаследованный элемент класса. | |
public | Доступ к элементу не ограничен. | |
protected | Доступ только из элементов данного и производных классов. | |
internal | Доступ только из данной программы (сборки). | |
protectedinternal | Доступ только из данного и производных классов или из данной программы (сборки). | |
private | Доступ только из данного класса. | |
volatile | Поле может изменяться другим процессом или системой. | |
readonly | Поле доступно только для чтения. | |
static | Одно поле для всех экземпляров класса. |
Для констант можно использовать только спецификаторы 1-6. Указание типа доступа необязательно. По умолчанию элементы класса считаются закрытыми (private). Поля, описанные со спецификатором static, а также константы существуют в единственном экземпляре для всех объектов класса, поэтому к ним обращаются не через имя экземпляра, а через имя класса
using System;
namespace ConsoleApplication2
{
class Prim
{
publicintp = 1; //поле данных типа int, доступ неограничен
publicconstdoublez = -5.31; //константа типа double, доступ неограничен
publicstaticstrings = " Prim "; //статическое поле класса, доступ неограничен
double y; //закрытое поле данных типа double
}
class Class1
{
static void Main()
{
Prim a = new Prim(); // созданиеэкземпляракласса prim
Console.WriteLine(a.p); // выводзначенияполя p экземпляракласса a
Console.WriteLine(Prim.z); // выводзначенияконстанты z класса Prim
Console.WriteLine(Prim.s); // вывод значения статическое поля s класса Prim
}
}
}
Вопрос 44
Методы классов
Метод — это функциональный член класса, который реализует вычисления или другие действия выполняемые классом или экземпляром. Методы определяют поведения класса. Он представляет собой законченный фрагмент кода, к которому можно обратиться по имени. Он описывается один раз, а вызываться может столько раз, сколько необходимо. Один и тот же метод может обрабатывать различные данные, переданные ему в качестве аргументов.
Описание метода:
[атрибуты][спецификаторы] тип имя_метода ([параметры])
тело_метода
Тело метода, как правило, представляет собой блок — последовательность операторов в фигурных скобках. Обязательными элементами описание метода являются имя метода, его тип, а также тело метода. Если метод не возвращает никакого значения в его заголовке должен присутствовать тип void а оператор return в теле метода отсутствовать. Поскольку методы — это те члены класса, которые ориентированы на применение пользователями, их спецификатор доступа, как правило, задается public.Пример простейшего метода:
publicdoubleGety()
{
returny;
}
Вопрос 45