Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

Информатика, программирование->Реферат
Задание режимов работы и обмен данными с дисплеем можно выполнять при прерываниях BIOS типа 10Н, а вывод данных на дисплей — и при прерываниях DOS тип...полностью>>
Информатика, программирование->Книга
Вычислительная техника в настоящее время широко применяется во всех областях человеческой деятельности. Существует устойчивая тенденция расширения кру...полностью>>
Информатика, программирование->Книга
Современный специалист в области создания программного обеспечения для вычислительной техники и автоматизированных систем должен обладать достаточными...полностью>>
Информатика, программирование->Лабораторная работа
map]: в) libraries[nul.lib]: Листинг программы: d_seg segment st1 db 'Starokozhko Anton Aleksandrovich', 10 , 13, '$' d_seg ends c_seg segment assume ...полностью>>

Главная > Лекция >Информатика, программирование

Сохрани ссылку в одной из сетей:

Клас String

Основним типом при роботі з рядками є тип string, що задає рядку змінної довжини. Клас String у мові C# відноситься до посилальних типів. Над рядками - об'єктами цього класу - визначений широкий набір операцій.

Об'єкти класу String оголошуються з явною або відкладеною ініціалізацією, з явним або неявним викликом конструктора класу. Найчастіше, при оголошенні строкової змінної конструктор явно не викликається, а ініціалізація задається стрічковою константою. У класу String багато конструкторів. Вони дозволяють сконструювати рядок з:

  • символу, повтореного задане число раз;

  • масиву символів char[];

  • частини масиву символів.

Приклади оголошення рядків:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace String3

{

class Program

{

static void Main(string[] args)

{

//конструктори

string world = "Мир";

//string s1 = new string("s1"); - не припустимо

//string s2 = new string(); - не припустимо

string sssss = new string('s', 5);

char[] yes = "Yes".ToCharArray();

string stryes = new string(yes);

string strye = new string(yes, 0, 2);

Console.WriteLine("world = {0}; sssss={1}; stryes={2};" +

" strye= {3}", world, sssss, stryes, strye);

string stry = new string(yes, 1, 2);

Console.WriteLine("world = {0}; sssss={1}; stryes={2};" +

" strye= {3}", world, sssss, stryes, stry); }

}

}

Об'єкт world створений без явного виклику конструктора, а об'єкти sssss, stryes, strye створені різними конструкторами класу String.

Зверніть увагу, не допускається явний виклик конструктора за замовчуванням - конструктора без параметрів. Немає також конструктора, якому як аргумент можна передати звичайну строкову константу. Відповідні оператори в тексті закоментовані.

Над рядками визначені наступні операції:

  • присвоювання (=);

  • дві операції перевірки еквівалентності (==) і (!=);

  • конкатенація або зчеплення рядків (+);

  • узяття індексу ([]).

Бінарна операція "+" зчіплює два рядки, приписуючи другий рядок до хвоста першої.

Можливість узяття індексу при роботі з рядками відбиває той факт, що рядок можна розглядати як масив й одержувати без праці кожен її символ. Кожен символ рядка має тип char, доступний тільки для читання, але не для запису.

Приклад, у якому над рядками виконуються дані операції:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace String3

{

class Program

{

static void Main(string[] args)

{

//операції над рядками

string s1 = "ABC", s2 = "CDE";

string s3 = s1 + s2;

bool b1 = (s1 == s2);

char cH2 = s1[0], cH3 = s2[0];

Console.WriteLine("s1={0}, s2={1}, b1={2}," +

"cH2={3}, cH3={4}", s1, s2, b1, cH2, cH3);

s2 = s1;

b1 = (s1 != s2);

cH3 = s2[0];

Console.WriteLine("s1={0}, s2={1}, b1={2}," +

"cH2={3}, cH3={4}", s1, s2, b1, cH2, cH3);

}

}

}

В C# існують два види стрічкових констант:

  • звичайні константи, які представляють рядок символів, укладені в лапки;

  • @-константи, задані звичайною константою c попереднім знаком @.

У звичайних константах деякі символи можуть задаватися у вигляді escape-послідовностей. Для всіх цих цілей використовується комбінація символів, що починається символом "\" - зворотна коса риска. Так, пари символів: "\n", "\t", "\\", "\"" задають відповідно символ переходу на новий рядок, символ табуляції, сам символ зворотної косої риски, символ лапок, що вставляє в рядок, але не сигналізує про її закінчення. Комбінація "\xNNNN" задає символ, обумовлений шістьнадцятерічним кодом NNNN. Іноді виникають незручності: наприклад, при завданні констант, що визначають шлях до файлу, доводиться щораз подвоювати символ зворотної косої риски. Це одна із причин, по якій з'явилися @-константи.

В @-константах всі символи трактуються в повній відповідності з їхнім зображенням. Тому шлях до файлу краще задавати @-константою.

Таблиця 17.2 Статичні методи й властивості класу String

Метод

Опис

Empty

Повертається порожній рядок. Властивість зі статусом read only

Compare

Порівняння двох рядків. Метод перевантажений. Реалізації методу дозволяють порівнювати як рядки, так і підрядки. При цьому можна враховувати або не враховувати регістр, особливості національного форматування дат, чисел і т.д.

CompareOrdinal

Порівняння двох рядків. Метод перевантажений. Реалізації методу дозволяють порівнювати як рядки, так і підрядки. Рівняються коди символів

Concat

Конкатенація(зчеплення) рядків. Метод перевантажений, допускає зчеплення довільного числа рядків

Copy

Створюється копія рядка

Format

Виконує форматування відповідно до заданих специфікацій формату.

Join

Конкатенація масиву рядків у єдиний рядок. При конкатенації між елементами масиву уставляються роздільники. Операція, задана методом Join, є зворотною до операції, заданої методом Split. Останній є динамічним методом й, використовуючи роздільники, здійснює поділ рядка на елементи

Динамічні методи класу String

Методи класу String дозволяють виконувати вставку, видалення, заміну, пошук входження підрядки в рядок. Клас String успадковує методи класу Object, частково їх перевизначаючи.

Методи, наведені в таблиці, дають досить повну картину можливостей, наявних при роботі з рядками в C#. Варто пам'ятати, що клас String є незмінним. Тому Replace, Insert й інші методи являють собою функції, що повертають новий рядок як результат і не змінюють рядок, що викликав метод.

Таблиця 17.3. Динамічні методи й властивості класу String

Метод

Опис

Insert

Вставляє підрядок в задану позицію

Remove

Видаляє підрядок в заданій позиції

Replace

Заміняє підрядок в заданій позиції на новий підрядок

Substring

Виділяє підрядок в заданій позиції

IndexOf, IndexOfAny, LastIndexOf, LastIndexOfAny

Визначаються індекси першого й останнього входження заданого підрядка або будь-якого символу із заданого набору

StartsWith, EndsWith

Повертається true або false, залежно від того, починається або закінчується рядок заданим підрядком

PadLeft, PadRight

Виконує набивання потрібним числом пробілів на початку й наприкінці рядка

Trim, TrimStart, TrimEnd

Зворотні операції до методів Pad. Віддаляються пробіли на початку й наприкінці рядка, або тільки з одного її кінця

ToCharArray

Перетворення рядка в масив символів

Клас StringBuilder

Клас StringBuilder – побудуви рядків. Клас string не дозволяє змінювати існуючі об'єкти. Стрічковий клас StringBuilder дозволяє компенсувати цей недолік. Цей клас належить до змінюваних класів і його можна знайти в просторі імен System.Text.

Оголошення рядків. Конструктори класу StringBuilder

Об'єкти цього класу оголошуються з явним викликом конструктора класу. Оскільки спеціальних констант цього типу не існує, то виклик конструктора для ініціалізації об'єкта просто необхідний. Конструктор класу перевантажений, і поряд з конструктором без параметрів, що створюють порожній рядок, є набір конструкторів, яким можна передати дві групи параметрів. Перша група дозволяє задати рядок або підрядок, значенням якої буде ініцілізувати створюваний об'єкт класу StringBuilder. Друга група параметрів дозволяє задати ємність об'єкта - обсяг пам'яті, що відводить даному екземпляру класу StringBuilder. Кожна із цих груп не є обов'язковою й може бути опущена. Прикладом може служити конструктор без параметрів, що створює об'єкт, ініцілізувати порожнім рядком, і з деякою ємністю, заданої за замовчуванням, значення якої залежить від реалізації. Приклад синтаксису трьох конструкторів:

  • public StringBuilder (string str, int cap). Параметр str задає рядок ініціалізації, cap - ємність об'єкта;

  • public StringBuilder (int curcap, int maxcap). Параметри curcap й maxcap задають початкову й максимальну ємність об'єкта;

  • public StringBuilder (string str, int start, int len, int cap). Параметри str, start, len задають рядок ініціалізації, cap - ємність об'єкта.

Зверніть увагу, що для цього класу не можна використати просте присвоювання:

StringBuilder s="abc"; //Неправильно!

У цьому випадку необхідно записати так:

StringBuilder s=new StringBuilder("abc"); //Правильно



Загрузить файл

Похожие страницы:

  1. Операції над літерними величинами

    Реферат >> Астрономия
    ... людини, подається у вигляді текстів. Робота по коректовці, оформленню, аналізу ... ічній мові тексти подаються у вигляді літерних величин. Літерні величинивеличини, значеннями яких є слова або тексти ...
  2. Схеми на пасивних елементах та діодах

    Реферат >> Коммуникации и связь
    ... високим і приблизно рівним опору емітерного переходу б-е:Rвх=r е і має порядок одиниць ... визначається величинами резисторів Ro і Rе, і опором навантаження. Принцип роботи СТ даного ... типу аналогічний принципу роботи схеми емітерної стабілізації струму ...
  3. Основні визначення. Приклади алгоритмів

    Лекция >> Информатика, программирование
    ... ільш ефективного використання і полегшення роботи користувача з обчислювальною системою. Виконуючи ... однозадачною або одночасно підтримувати роботу декількох програм - бути ... і слід ввести проміжну літерну величину, наприклад, Z і використовувати отримане ...
  4. Принцип роботи 3УСКТ

    Реферат >> Астрономия
    ... дсилення звукової частоти в ПЧЗ. З емітерного повторювача підсилений по струму відеосигнал ... сигнали основних кольорів підсилюються до величин, необхідних для нормальної ... . Дана структурна схема призначена для роботи з кінескопами із самозведенням типу 51ЛК2Ц ...
  5. Розвиток творчих здібностей молодших школярів у роботі над текстом на уроках української мови в початкових

    Магистерская работа >> Педагогика
    ... - творчі здібності стають незалежною величиною, інакше кажучи, не існує творц ... виявляти увагу до аспектів навчальної роботи, практики роботи з текстом, від яких залежить ... пишалася; справа, кущ, туманом, немов, терну, їжачився, синюватим, повитий. Вправа 4. ...

Хочу больше похожих работ...

Generated in 0.0017001628875732