русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Робота з рядками.


Дата додавання: 2014-11-27; переглядів: 6148.


 

Мета роботи: Вивчити основи роботи з рядковими типами даних. Оволодіти навичками запису та зчитування даних при роботі з об’єктом RichTextBox.

 

У багатьох мовах програмування рядки – представлені у вигляді масиву символів, але в C# рядки є об’єктами. Тип даних string у C# є типом-посилання. Текстові дані в C# представлені вбудованими типами даних string і char. Тип char надає можливість зберігати елемент символьних даних у системі кодування Unicode. Клас Char містить набір статичних методів, які надають додаткову функціональність для роботи з символами.

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

Також існує велика кількість варіантів оголошення рядків:

string s; // оголошення без ініціалізації

 

string s=''економічна кібернетика''; //оголошення з //ініціалізацією

 

string s=@''ЕММ-

економіко-математичне моделювання '';

// символ @ повідомляє конструктор string, що рядок потрібно // сприймати дослівно,навіть якщо він може займати декілька // рядків

 

string s=new string (' ', 20); // конструктор створює рядок, //що складається з 20 пробілів

 

int zm = 20020101; // ініціалізація цілочисельної змінної

string s = zm.ToString(); //перетворення змінної в тип string

 

char [] a={'a', 'b', 'c', 'd', 'e'}; // створення масиву //символів

 

string v=new string (a); // створення рядка з масиву //символів

 

char [] a={'a', 'b', 'c', 'd', 'e'};

// створення масиву символів

string v=new string (a, 0, 2)

// створення рядка з частини масиву символів, причому: 0 - // показує, з якого символу починати створення, 2 - кількість // символів

Зауважимо, що рядок може містити службові символи, які починаються з похилої риски (\). Так здійснюється, наприклад, переведення рядка та вставка символів табуляції. Оскільки похила риска вліво може самостійно використовуватись у деяких синтаксисах рядків (наприклад URL або шлях до каталогу), то в такому випадку перед похилою рискою має стояти ще одна похила риска. Рядки також можуть бути створені за допомогою дослівного запису у програмному коді. Такі рядки повинні починатися з символу @, який повідомляє конструктору String, що рядок повинен використовуватись дослівно, навіть якщо він містить службові символи.

Деякі службові символи наведені в таблиці 5.1.

 

Таблиця 5.1. Службові символи

Символ Опис
\’ Уставляє одинарні лапки у текст
\” Уставляє подвійні лапки у текст
\\ Уставляє зворотній слеш у текст
\n Уставляє новий рядок в текст
\r Повертає курсор на початок рядку
\t Уставляє символ горизонтальної табуляції в рядок

 

Отже, наведені нижче два рядки еквівалентні:

string str1 =- "\\\\Folder\\MyFolder\\File.doc";

string str2 = @"\\Folder\MyFolder\File.doc";

 

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

· присвоєння (=);

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

· конкатенація (+);

· взяття індекса ([]).

Для перевірки рівності двох рядків необхідно використовувати оператор «==». Як правило, коли оператор «==» застосовується до об’єктів-посилань, то він визначає, чи відносяться обидва посилання до одного і того ж об’єкта. Але при застосуванні його до об’єктів типу string, здійснюється перевірка рівності вмісту двох рядків. Аналогічно використовується оператор «!=».

Зауважимо, що вміст string-обєктів незмінний, тобто послідовність символів з яких складається рядок, змінити не можна. На перший погляд це може здаватися суттєвим недоліком, проте це не так. Дане обмеження дозволяє C# ефективно використовувати рядки. Якщо необхідно отримати рядок, що буде містити певну частину вже існуючого, то потрібно створити новий рядок, який буде містити необхідні зміни. Розглянемо методи для роботи з символами (табл. 5.2).

 

Таблиця 5.2. Методи для роботи з символами

Властивість Призначення

 

IsDigit Повертає значення true, якщо даний символ відноситься до категорії десяткових цифр
IsLetter Повертає значення true, якщо даний символ відноситься до категорії літер
IsLetterOrDigit Повертає значення true, якщо даний символ належить до категорії літер або десяткових цифр
IsNumber Повертає значення true, якщо даний символ належить до категорії цифр (десяткових або шістнадцяткових)
IsSeparator Повертає значення true , якщо даний символ відноситься до категорії знаків розділювачів
IsUpper Повертає значення true , якщо даний символ заданий у верхньому регістрі
IsLower Повертає значення true, якщо даний символ заданий у нижньому регістрі
ToUpper Переводить відповідний символ у верхній регістр
ToLower Переводить відповідний символ у нижній регістр

Кожен статичний метод має два варіанти виклику: з параметром типу char або з двома параметрами – перший рядок типу string, а другий – індекс символу типу int у рядку.

Наприклад, для того визначення того, що символ є цифрою, можна використати такий метод:

bool Check = Char.IsDigit(‘A’);

Якщо треба визначити чи починається слово з великої літери, то використовується метод вже з двома вхідними параметрами:

string word = “Україна”;

bool Check = Char.IsUpper(word,0);

Клас String охоплює багато методів для роботи з рядками, основні з яких такі:

· порівняння рядків;

· зміни та перетворення рядків: заміна частин, регістру символів, перетворення між рядками та іншими типами;

· звернення до окремих підрядків у рядку;

· форматування виведення.

Таблиця 5.3. Статичні методи

Назва Опис
Compare Порівняння двох рядків у лексикографічному порядку. Метод повертає 1, якщо лівий рядок більший від правого; -1 якщо лівий рядок менший від правого та 0 якщо рядки однакові
Concat Злиття довільної кількості рядків
Copy Створення копії рядка
Join Злиття масиву рядків в один рядок. Між елементами масиву вставляються розділювачі
Split Створення масиву рядків з одного рядка. Де елементи масиву – частини рядка, відокремлені вказаним розділювачем
Format Форматування рядка за вказаним форматом.

Копіювання рядка можна розглянути на такому прикладі:

string Text1 = "one two three";

string Text2 = String.Copy(Text1);

Для визначення довжини рядка і збереження її в змінну можна використати такий приклад:

string Text1 = "1-2-3-4";

int StrLen = Text1.Length; // Запише значення 7

Для визначення частини одного рядка та її запису в іншу змінну,використовується такий код:

string Text1 = "Певний текст";

string Text2 = Text1.Substring(7); // В змінну Text2

//запишеться "текст"

Методи Split та Join працюють за оберненим принципом. Метод Splitз з рядка формує масив рядків.

string Text1 = "Слово1,слово2,слово3,слово4";

string[] Arr; // Оголошуємо масив

Arr = Text1.Split(','); // Записуємо значення в масив, //вказуючи в лапках відповідно розділювач між словами.

string Text2 = String.Join("-", Arr);// З масиву

//створюємо новий рядок, вставляючи між словами //вказаний розділювач.

Клас string містить досить велику кількість методів для роботи з рядками. Деякі з них наведені в таблиці 5.4.

Таблиця 5.4. Методи для роботи з рядками

Назва Вид Опис

 

CompareTo Метод Порівняння поточного екземпляру рядка з іншим рядком
IndexOf, IndexOfAny, LastIndexOf, LastIndexOfAny Екземплярні методи Визначення індексів першого та останнього входження заданого підрядка або іншого символу з вказаної множини в даний рядок
Insert Екземплярний метод Вставка підрядка в задану позицію
Length Властивість Повертає довжину рядка
PadLeft, PadRigth Екземплярні методи Вирівнювання рядка по лівому або правому краю шляхом вставки потрібного числа пробілів на початку або в кінці рядка
Remove Екземплярний метод Видалення підрядка з вказаної позиції
Replace Екземплярний метод Заміна всіх уходжень даного підрядка або символу новим підрядком або символом.
Split Екземплярний метод Розділення рядка на елементи з використанням різних розділювачів. Результат розміщується в масив рядків
StartWith, EndWith Екземплярні методи Повертає значення true або false залежно від того, чи починається або закінчується рядок даним підрядком
Substring Екземплярний метод Виділення підрядка, починаючи з указаної позиції
ToCharArray Екземплярний метод Перетворення рядка в масив символів.
ToLower, ToUpper Екземплярні методи Перетворення рядка до нижнього або верхнього регістру
Trim, TrimStart, TrimEnd Екземплярні методи Видалення пробілів на початку та в кінці рядка або тільки з одного кінця

 


RichTextBox

За допомогою елемента управління RichTextBox, користувач може вводити і змінювати текст. Елемент управління також надає розширені можливості форматування в порівнянні зі стандартним елементом управління TextBox. Елемент керування RichTextBox містить безліч властивостей, які можна використовувати при застосуванні форматування до будь-якої частини тексту в елементі керування. Перед зміною форматування тексту цей текст необхідно виділити. Тільки до виділеного тексту можна застосувати форматування символів і абзаців. Після того як для виділеного тексту був призначений який-небудь параметр, текст, введений після виділеного, буде форматуватися з урахуванням того ж параметра, поки цей параметр не буде змінений, або не буде виділена інша частина документа елемента керування. У таблицях 5.5 та 5.6 відображено основні властивості та методи для роботи з RichTextBox.

Таблиця 5.5 Властивості RichTextBox

Назва Опис

 

AutoWordSelection Повертає або задає значення, що вказує чи виконується автоматично виділення всього слова, коли користувач виділяє його частину за допомогою миші
DetectUrls   Отримує або задає значення, що визначає, чи буде елемент управління RichTextBox автоматично форматувати адресу URL при введенні її в елемент керування
EnableAutoDragDrop   Отримує або задає значення, за допомогою якого дозволяється перетягування тексту, зображень та інших даних
Lines   Отримує або задає рядки тексту в елементі керування "Текстове поле"
Multiline   Отримує або задає значення, що показує, чи є даний елемент управління багаторядковим RichTextBox
ScrollBars   Отримує або задає тип смуг прокрутки, що відображаються в елементі управління RichTextBox
ShortCutsEnabled   Отримує або задає значення, яке вказує, чи увімкнене зчитування гарячих клавіш

 

Таблиця 5.6. Методи RichTextBox.

Назва Опис
AppendText Додає текст у кінець поточного тексту в текстовому полі
Clear Вилучає весь текст з елемента управління "Текстове поле"
Copy Копіює поточний вміст з текстового поля в буфер обміну
Find (String) Здійснює пошук тексту в елементі керування RichTextBox
LoadFile (String) Завантажує файл у форматі RTF або стандартний текстовий файл у кодуванні ASCII в елемент керування RichTextBox
Paste Замінює поточний вміст у текстовому полі вмістом буфера обміну

 


Завдання для самостійної роботи

 

1. Вивести всі слова, що починаються на вказану літеру.

2. Усі літери у верхньому регістрі змінити на нижній.

3. Підрахувати кількість голосних літер у словах, що містять більше 5 літер.

4. Поміняти місцями літери у словах, крім першої та останньої, в довільному порядку.

5. Вивести речення після вказаного слова.

6. Вивести усі речення, що починаються на вказане слово.

7. Вилучити усі зайві пробіли між словами, якщо такі існують.

8. Змінити місцям першу й останню літери у всіх словах.

9. Замінити цифри 1,2..9 відповідним текстовим еквівалентом «один», «два» … «дев’ять».

10. Вивести усі слова, в яких зустрічається подвоєння літер.

11. Замінити в тексті усі входження заданого слова іншим.

12. Вивести слова, літери в яких розміщені в алфавітному порядку.

13. Змінити в дзеркальному порядку розміщення літер у словах.

14. Вилучити з тексту слова, в яких зустрічаються літери «ц», «о», «ш», «п», «г».



<== попередня лекція | наступна лекція ==>
Одновимірні масиви | Класи для роботи з файловою системою


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн