- •Модуль 1. Мова програмування с# і платформа ms.Net Framework Лекція 6. Стандартні класи с#. Робота з рядками
- •6.1. Тип char. Масиви типу char
- •Масиви типу char
- •6.2. Робота з рядками. Клас String і його методи
- •Форматування рядків
- •6.3. Перевірка рядка на пустоту
- •6.4. Клас StringBuilder і його методи
- •6.4.2. Синтаксис оператора try:
- •6.4. Обробка помилок. Клас Exception.
- •6.4.1. Виклик і обробка виключень
- •6.5. Комплексний приклад. Вдосконалений консольний калькулятор
- •Питання і завдання для самостійної роботи студента
- •18. Лабораторна робота № 5.
6.3. Перевірка рядка на пустоту
Існує декілька способів перевірити рядок на пустоту:
if (myString == "") // порожній рядок;
if (myString == String.Empty) // порожній рядок;
if (myString.Length ==0) // рядок з нульовою довжиною – працює найшвидше;
if (String.Equals(myString, String.Empty)).
Також є метод isNullEmpty,
який дозволяє швидко і просто перевірити рядок – порожій він чи має значення null.
Приклад 6.7.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
string name = "name";
if ( string.IsNullOrEmpty(name))
throw new ArgumentNullException("name");
Console.WriteLine(string.Concat("Hello, ", name));
Console.ReadKey();
}
}
}
Приклад 6.8. Перевірка входження підрядка у рядок
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
string name = "name";
string str1 = "my name";
if ( string.IsNullOrEmpty(name))
throw new ArgumentNullException("name");
Console.WriteLine(string.Concat("Hello, ", name));
int i = str1.IndexOf(name); // пошук підрядка
Console.WriteLine("номер підрядка, "+ i);
Console.ReadKey();
}
}
}
6.4. Клас StringBuilder і його методи
Іноді слід уникати ситуацій, коли в результаті виконання операції створюється новий рядок, оскільки це пов'язано з додатковими витратами пам'яті та інших ресурсів комп'ютера при виконанні операції.
C# містить спеціальний клас StringBuilder, використовуючи який можна уникнути створення копій рядків при їх обробці. Всі зміни, що вносяться до об'єкту даного класу, негайно відображаються в ньому, що ефективніше, ніж робота з копіями рядка.
Основною операцією, яка найчастіше використовується класом StringBuilder, є операція додавання до рядка вмісту. Для цього існує метод Append. Наступний код додає один рядок до іншого і виводить результат на консоль. При цьому змінюється оригінал рядка, копія не створюється:
StringBuilder sb = new StringBuilder("Наступного тижня у нас кредит");
sb.Append(", потрібно захистити лаб.роботи");
Сonsole.Write(sb);
Окрім додавання клас StringBuilder містить інші методи, найбільш значимі з яких наведені нижче. Після того, як усі необхідні дії, пов'язані з обробкою рядка, були виконані, необхідно викликати метод ToString() для перетворення вмісту об'єкту в звичайний тип даних string.
Таблиця 6.3. Деякі методи класу StringBuilder |
|
Append() |
Додавання заданого рядка в кінець рядка об'єкту. |
AppendFormat()
|
Додавання заданого форматованого рядка (рядка, що містить управляючі символи) в кінець рядка об'єкту. |
CopyTo()
|
Копіювання символів заданого сегменту рядка в задані комірки масиву символів. |
Insert() |
Додавання рядка в задану позицію рядка об'єкту. |
Remove() |
Видалення заданої кількості символів з рядка об'єкту |
Replace()
|
Заміна заданого символу або рядка об'єкту на інший заданий символ або рядок. |
При інтенсивній роботі з рядками рекомендується використовувати клас StringBuilder, оскільки це дозволяє зменшити накладні витрати, пов'язані із створенням копії рядка при виконанні кожної операції.
