Строковый тип 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

Наши рекомендации