Поиск

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

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

Информатика, программирование->Курсовая работа
Актуальність теми дослідження. Як відомо, розвиток людства супроводжувався різноманітними досягненнями. Якщо поринути в історію, то побачимо, що, навч...полностью>>
Информатика, программирование->Шпаргалка
В современном мире информация является таким же важным ресурсом как энергия и сырье. В связи с этим возникают вопросы количественной и качественной оц...полностью>>
Информатика, программирование->Контрольная работа
В данном курсовом проекте разработан секундомер на базе микроконтроллера МК51. Проанализированы алгоритмы работы устройства и микроконтроллера. По алг...полностью>>
Информатика, программирование->Отчет о прохождении практики
Формирование общей культуры личности, обучающихся на основе усвоения обязательного минимума, содержания общеобразовательных программ начального общего...полностью>>

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

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

Робота з літерними величинами

Коли говорять про cтрічковий тип, то звичайно розрізняють тип, що представляє:

окремі символи - тип char;

рядок постійної довжини - масив символів;

рядок змінної довжини - тип string.

Символьний тип char, що представляє окремий випадок рядків довжиною 1. Основні операції над рядками - це розбір і зборка.

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

Клас char

В C# є символьний клас Char, заснований на класі System.Char і що використовує двохбайтове кодування Unicode подання символів. Константу можна задавати:

  • символом, укладеним в одинарні ( ‘A’ ) лапки;

  • escape-послідовністю, що задає код символу;

Escape-послідовність («виключена послідовність») - відповідні послідовності текстових символів, які представляють собою логічне кодування. Необхідність логічного кодування текстових знаків виникла тому, що деякі з текстових знаків у програмах, що працюють із текстом, мають спеціальне (керуюче) значення. Для того, щоб використати ці знаки безпосередньо як текст, їх кодують специфічними для кожної системи (escape-послідовностями,: наприклад у З послідовності - \n (символ перекладу рядка), \t( символ табулювання) і т.д. використаються при форматному виводі.

  • Unicode-послідовністю, що задає Unicode-код символу.

Приклади оголошення символьних змінних і роботи з ними:

char cH2 = 'A'; //Символ

char cH3 = '\x5A';//Шістнацят. код

char ch3 = '\u0058';//Unicode-код

char VK = '\n'; //ESCape - послідовність переклад рядка

char TAB = '\t';// табуляція

char ch = new Char();

int code;

string s;

ch = cH2;

//перетворення символьного типу в тип int

code = ch;

cH2 = (char)(code + 1);

//перетворення символьного типу в рядок

s = cH2.ToString()+ cH3.ToString() + ch3.ToString() + VK + TAB;

Console.WriteLine("s= {0},\t ch= {1}, \t code= {2}", s, ch, code);

for (int i = 1; i < 64; i++)

{

cH2 = (char)(code + i);

Console.WriteLine(TAB + cH2.ToString());

}

Три символьні змінні ініціалізовані константи, значення яких задані трьома різними способами. Змінна ch оголошується як об'єкт, використовуючи new і виклик конструктора класу. Тип char, як і всі типи C#, є класом. Цей клас успадковує властивості й методи класу Object і має велику кількість власних методів.

Явні або неявні перетворення між класами char й string відсутні, але, завдяки методу ToString, змінні типу char перетворюються в тип string.

У результаті роботи процедури рядок s, отриманий зчепленням трьох символів, перетворених у рядки, має значення BZX, змінна ch дорівнює A, а її код - змінна code - 65.

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

Метод

Опис

GetNumericValue

Повертає чисельне значення символу, якщо він є цифрою, і (-1) у противному випадку

GetUnicodeCategory

Всі символи розділені на категорії. Метод повертає Unicode категорію символу. Нижче наведений приклад

IsControl

Повертає true, якщо символ є керуючим

IsDigit

Повертає true, якщо символ є десятковою цифрою

IsLetter

Повертає true, якщо символ є буквою

IsLetterOrDigit

Повертає true, якщо символ є буквою або цифрою

IsLower

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

IsNumber

Повертає true, якщо символ є числом (десятковою або шістнадцятирічною цифрою)

IsPunctuation

Повертає true, якщо символ є розділовим знаком

IsSeparator

Повертає true, якщо символ є роздільником

IsSurrogate

Деякі символи Unicode з кодом в інтервалі [0x1000, 0x10FFF] представляються двома 16-бітними "сурогатними" символами. Метод повертає true, якщо символ є сурогатним

IsUpper

Повертає true, якщо символ заданий у верхньому регістрі

IsWhiteSpace

Повертає true, якщо символ є "білим пробілом". До білих пробілів, крім пробілу, ставляться й інші символи, наприклад, символ кінця рядка й символ перекладу каретки

Parse

Перетворить рядок у символ. Природно, рядок повинен складатися з одного символу, інакше виникне помилка

ToLower

Приводить символ до нижнього регістру

ToUpper

Приводить символ до верхнього регістру

MaxValue, MinValue

Властивості, що повертають символи з максимальним і мінімальним кодом. Символи, що повертають, не мають видимого образу

Більшість статичних методів перевантажені. Вони можуть застосовуватися як до окремого символу, так і до рядка, для якого вказується номер символу для застосування методу. Основну групу становлять методи Is…,використовувані при розборі рядків.

Крім статичних методів, у класі Char є й динамічні. Більшість із них - це методи батьківського класу Object, успадковані в класі Char. Із власних динамічних методів варто відзначити метод CompareTo, що дозволяє проводити порівняння символів. Він відрізняється від методу Equal тим, що для незбіжних символів видає "відстань" між символами відповідно до їх упорядкованості в кодуванні Unicode.

Приклад:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace String2

{

class Program

{

static void Main(string[] args)

{

char cH2, cH3;

int dif;

Console.WriteLine("Метод CompareTo");

cH2='A'; cH3= 'Z';

dif = cH2.CompareTo(cH3);

Console.WriteLine("Відстань між символами {0},{1} = {2}", cH2, cH3, dif);

cH2='а'; cH3= 'А';

dif = cH2.CompareTo(cH3);

Console.WriteLine("Відстань між символами {0},{1} = {2}", cH2, cH3, dif);

cH2='Я'; cH3= 'А';

dif = cH2.CompareTo(cH3);

Console.WriteLine("Відстань між символами {0},{1} = {2}", cH2, cH3, dif);

cH2='A'; cH3= 'A';

dif = cH2.CompareTo(cH3);

Console.WriteLine("Відстань між символами {0},{1} = {2}", cH2, cH3, dif);

cH2='А'; cH3= 'A';

dif = cH2.CompareTo(cH3);

Console.WriteLine("Відстань між символами {0},{1} = {2}", cH2, cH3, dif);

cH2='Ё'; cH3= 'А';

dif = cH2.CompareTo(cH3);

Console.WriteLine("Відстань між символами {0},{1} = {2}", cH2, cH3, dif);

}

}

}

Результати порівняння зображені на рис 17.1

Рис. 17.1.  Порівняння символів

Аналізуючи ці результати, можна зрозуміти, що в кодуванні Unicode як латиниця, так і кирилиця щільно впаковані. Виключення становить буква Е - заголовна й мала - вони випадають із щільного кодування. Малі букви в кодуванні безпосередньо випливають за заголовними буквами. Відстань між алфавітами в кодуванні досить велике - російська буква А на 975 символів правіше в кодуванні, чим відповідна буква в латинському алфавіті.

Клас char[] - масив символів

У мові C# визначений клас Char[], і його можна використати для подання рядків постійної довжини. Крім того, оскільки масиви в C# динамічні, то можна використати масиви символів для подання рядків.

Масив char[] - це звичайний масив, його не можна ініцілізувати рядком символів. Константа, що задає рядок символів, належить класу String, а в C# не визначені взаємні перетворення між класами String й Char[]. У класу String є, динамічний метод ToCharArray, що задає перетворення рядка символів у масив.

Клас Char[] є спадкоємцем не тільки класу Object, але й класу Array, і, отже, має всі методи батьківських класів. Деякі перевантажені методи класу Array можна розглядати як операції над рядками. Методи IndexOf, LastIndexOf дозволяють визначити індекси першого й останнього входження в рядок деякого символу. На жаль, їх не можна використати для знаходження індексу входження підрядки в рядок.



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

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

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

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

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

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

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

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

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

Generated in 0.0080468654632568