Символьний тип даних char. Структура System.Char. Методи структури System.Char
Зміст
- 1. Особливості типу даних char. Внутрішнє представлення. Структура System.Char
- 2. Оголошення змінної типу char. Приклади символьних констант типу char
- 3. Як визначити код символу типу char. Приклад
- 4. Приклади методів, що реалізовані в структурі типу Char
- 4.1. Метод IsControl(). Визначення, чи символ є керуючим символом
- 4.2. Метод IsDigit(). Визначення, чи символ є цифрою
- 4.3. Метод IsLetter(). Визначення, чи символ є буквеним
- 4.4. Метод IsLower(). Визначення, чи знаходиться символ у нижньому регістрі
- 4.5. Метод IsUpper(). Визначення, чи знаходиться символ у верхньому регістрі
- 4.6. Метод IsNumber(). Визначення, чи символ є числом
- 4.7. Метод IsSeparator(). Визначає, чи символ є розділювачем
- 4.8. Метод IsWhiteSpace(). Визначає, чи символ є пробілом
- 4.9. Метод ToLower(). Переводить символ в нижній регістр
- 4.10. Метод ToUpper(). Переводить символ в верхній регістр
- 5. Константи MinValue, MaxValue
- Зв’язані теми
Пошук на інших ресурсах:
1. Особливості типу даних char. Внутрішнє представлення. Структура System.Char
В .NET Framework тип даних char введено для представлення окремого символу. Кожен символ кодується в форматі Unicode. Формат Unicode передбачає використання кодової форми UTF-16, в якій кожен символ представлений 16-бітним числовим додатнім значенням.
Розрядність в 16 біт (а не 8 біт, як було раніше) пояснюється тим, що потрібно забезпечити представлення широких наборів символів у деяких мовах. Наприклад, в китайській мові кількість використовуваних символів неможливо помістити в кількість можливих варіантів значень, які дає 8-бітне представлення символу.
У мові C# кожне 16-бітне значення представлене діапазоном від 0x0000 до 0xFFFF і розміщується в структурі System.Char.
Структура System.Char представляє методи, які групуються за наступними ознаками:
- порівняння об’єктів типу char;
- конвертування поточного char-об’єкту в об’єкт іншого типу;
- перетворення регістру символу;
- визначення категорії поточного символу.
⇑
2. Оголошення змінної типу char. Приклади символьних констант типу char
Тип даних char може представляти різні види символів:
- символи які відбражаються на клавіатурі;
- спеціальні керуючі символи, такі як ‘\n’, ‘\b’, ‘\t’ та інші.
Нижче наведено приклади оголошення змінної типу char та використання деяких символьних констант
char c1; // Оголошення змінної типу char char c2 = '\x173'; // Оголошення з ініціалізацією c1 = ' '; // символ пробіл c1 = '\x20'; // символ пробіл у вигляді коду в 16-й системі числення c2 = '\n'; // символ нового рядка c2 = 'Z'; // літера Z верхнього регістру c2 = 'z'; // літера z нижнього регістру
⇑
3. Як визначити код символу типу char. Приклад
Щоб визначити код символу типу char потрібно реалізувати операцію явного приведення типу, як показано нижче.
char c = '\x20'; // Оголошення з ініціалізацією uint code; code = (uint)c; // code = 32 (у десятковій системі числення) c = '\n'; code = (uint)c; // code = 10 c = 'D'; code = (uint)c; // code = 68
⇑
4. Приклади методів, що реалізовані в структурі типу Char
Тип char є псевдонімом структури типу System.Char, яка має ряд методів. Нижче перераховано основні з них.
4.1. Метод IsControl(). Визначення, чи символ є керуючим символом
Метод IsControl() визначає, чи символ відноситься до категорії керуючих символів згідно з кодуванням Unicode. До керуючих символів відносяться ‘\n’, ‘\t’, ‘\b’ та інші. Метод повертає значення типу bool і має дві перевантажені реалізації.
Загальна форма першої реалізації методу наступна:
bool char.IsControl(char c);
тут
- c – символ, який перевіряється. Якщо символ c є керуючим (управляючим), то функція повертає true.
Загальна форма другої реалізації методу наступна:
bool char.IsControl(string s, int index);
тут
- s – рядок, в якому відбувається перевірка;
- index – позиція символу в рядку s, для якого здійснюється перевірка. Якщо символ c є керуючим, то функція повертає true.
Приклад.
// Визначити, чи символ є управляючим bool fRes; fRes = char.IsControl('.'); // fRes = false fRes = char.IsControl('\t'); // fRes = true fRes = char.IsControl('\\'); // fRes = false fRes = char.IsControl('\n'); // fRes = true // Чи символ в заданій позиції заданого рядка є управляючим fRes = char.IsControl("abcd\nghi", 4); // fRes = true fRes = char.IsControl("abcd\nghi", 3); // fRes = false
⇑
4.2. Метод IsDigit(). Визначення, чи символ є цифрою
Метод IsDigit() призначений для визначення того, чи є символ цифрою. Метод має дві перевантажені реалізації:
bool char.IsDigit(char c); bool char.IsDigit(string s, int index);
тут
- c – символ, що перевіряється;
- s – рядок, в якому перевіряється символ в позиції index. Вказаний символ має позначення s[index].
Якщо вказаний символ є цифрою, то функція повертає true.
Приклад.
// 2. Визначити, чи символ є цифрою bool fRes; char c = '7'; fRes = System.Char.IsDigit(c); // fRes = true fRes = char.IsDigit('a'); // fRes = false fRes = char.IsDigit('.'); // fRes = false fRes = char.IsDigit("550", 0); // fRes = true fRes = char.IsDigit("A50", 0); // fRes = false
⇑
4.3. Метод IsLetter(). Визначення, чи символ є буквеним
Метод IsLetter() повертає true, якщо заданий символ є буквеним. Символ задається однією з двох перевантажених реалізацій методу
bool char.IsLetter(char c); bool char.IsLetter(string s, int index);
Приклад.
// Визначити, чи символ є буквеним bool fRes; fRes = char.IsLetter('z'); // fRes = true fRes = char.IsLetter(';'); // fRes = false fRes = System.Char.IsLetter('\n'); // fRes = false fRes = char.IsLetter("\na+-8", 1); // fRes = true fRes = char.IsLetter("\na+-8", 2); // fRes = false
⇑
4.4. Метод IsLower(). Визначення, чи знаходиться символ у нижньому регістрі
Метод IsLower() повертає значення true, якщо заданий символ знаходиться у нижньому регістрі. Метод має дві перевантажені реалізації
bool char.IsLower(char c); bool char.IsLower(string s, int index);
тут
- c – символ, який перевіряється;
- s – рядок, в якому визначається символ в позиції index.
Приклад.
// Визначити, чи знаходиться символ у нижньому регістрі bool fRes; fRes = char.IsLower('Z'); // fRes = false fRes = char.IsLower(';'); // fRes = false fRes = char.IsLower("hELLO wORLD!", 0); // fRes = true fRes = char.IsLower("ABCD", 2); // fRes = false
⇑
4.5. Метод IsUpper(). Визначення, чи знаходиться символ у верхньому регістрі
Метод IsUpper() призначений для визначення, чи знаходиться символ у верхньому регістрі, у цьому випадку метод повертає true. Метод має дві перевантажені реалізації
bool char.IsUpper(char c); bool char.IsUpper(string s, int index);
тут
- c – символ, що перевіряється;
- s – рядок, в якому перевіряється символ в позиції index. Символ, що перевіряється, має значення s[index].
Приклад.
// Визначити, чи знаходиться символ у верхньому регістрі bool fRes; fRes = char.IsUpper('Ю'); // fRes = true, кириличні символи також обробляються fRes = char.IsUpper('ю'); // fRes = false fRes = char.IsUpper("abc+DEF", 4); // fRes = true
⇑
4.6. Метод IsNumber(). Визначення, чи символ є числом
Метод IsNumber() визначає, чи є символ числом. Якщо символ є числом, метод повертає true. Метод має дві перевантажені реалізації:
bool char.IsNumber(char c); bool char.IsNumber(string s, int index);
тут
- c – символ, що перевіряється;
- s – рядок, в якому знаходиться символ, що перевіряється. Позиція символу задається параметром index.
Приклад.
// Визначити, чи є символ числом bool fRes; fRes = char.IsNumber('8'); // fRes = true fRes = char.IsNumber('\t'); // fRes = false fRes = char.IsNumber("2+2=5", 2); // fRes = true fRes = char.IsNumber("2+2=4", 3); // fRes = false
⇑
4.7. Метод IsSeparator(). Визначає, чи символ є розділювачем
Метод IsSeparator() використовується для визначення того, чи символ відноситься до категорії розділювачів згідно з кодуванням Unicode. Якщо символ є розділювачем, то метод повертає true.
Метод має дві перевантажені реалізації:
bool char.IsSeparator(char c); bool char.IsSeparator(string s, int index);
тут
- c – символ, що перевіряється;
- s – рядок, в якому в позиції index отримується символ, який потрібно перевірити.
Приклад.
// Визначити, чи символ є розділювачем fRes = char.IsSeparator(' '); // fRes = true fRes = char.IsSeparator(','); // fRes = false fRes = char.IsSeparator('\n'); // fRes = false fRes = char.IsSeparator('\t'); // fRes = false
⇑
4.8. Метод IsWhiteSpace(). Визначає, чи символ є пробілом
Метод IsWhiteSpace() визначає, чи символ відноситься до категорії пробільних символів згідно з кодуванням Unicode. До пробільних символів можна віднести пробіл, символ табуляції, символ нового рядка тощо. У випадку успіху метод повертає true.
Існує дві реалізації методу:
bool char.IsWhiteSpase(char c); bool char.IsWhiteSpase(string s, int index);
тут
- c – символ, що перевіряється;
- s – рядок, в якому в позиції index визначається символ, що перевіряється. Значення символу визначається як s[index].
Приклад.
// Визначити, чи символ є пробілом bool fRes; fRes = char.IsWhiteSpace('\t'); // fRes = true fRes = char.IsWhiteSpace('\n'); // fRes = true fRes = char.IsWhiteSpace(' '); // fRes = true fRes = char.IsWhiteSpace('\b'); // fRes = false fRes = char.IsWhiteSpace(';'); // fRes = false
⇑
4.9. Метод ToLower(). Переводить символ в нижній регістр
Метод ToLower() використовується для переводу символу в нижній регістр (якщо можливо). Метод повертає перетворений символ. Згідно з документацією .NET Framework метод має дві перевантажені реалізації
char char.ToLower(char c); char char.ToLower(char c, System.Globalization.CultureInfo culture);
тут
- c – символ, що переводиться в нижній регістр;
- culture – інформація про культуру, яка розміщується в класі System.Globalization.Culture. Культура описує імена для культури, систему запису, використовуваний календар, порядок сортування а також форматування для рядків та дат.
Приклад.
// Перевід символу в нижній регістр char c1, c2; c2 = 'A'; c1 = char.ToLower(c2); // c1 = 'a' c1 = char.ToLower(c2, CultureInfo.CurrentCulture); // c1 = 'a' c1 = char.ToLower(c2, CultureInfo.InvariantCulture); // c1 = 'a' c1 = char.ToLower('+'); // c1 = '+'
⇑
4.10. Метод ToUpper(). Переводить символ в верхній регістр
Метод ToUpper() призначений для переводу заданого символу в верхній регістр (якщо можливо). Якщо перетворення можливе (символ має представлення у двох регістрах), метод повертає символ у верхньому регістрі. Якщо неможливо виконати перетворення, то повертається значення вихідного символу. Згідно з документацією .NET Framework метод має дві перевантажені реалізації:
char char.ToUpper(char c); char char.ToUpper(char c,
тут
- c – символ, що переводиться в нижній регістр;
- culture – інформація про культуру, яка розміщується в класі System.Globalization.Culture. Культура описує імена для культури, систему запису, використовуваний календар, порядок сортування а також форматування для рядків та дат.
Приклад.
// Перевід символу в верхній регістр char c1, c2; c2 = 'k'; c1 = char.ToUpper(c2); // c1 = 'K' c1 = char.ToUpper('f'); // c1 = 'F' c1 = char.ToUpper('='); // c1 = '='
⇑
5. Константи MinValue, MaxValue
У структурі System.Char введено дві константи:
- MinValue – представляє мінімально допустиме значення типу char, яке рівне ‘\0’;
- MaxValue – представляє максимально допустиме значення типу char, яке рівне ‘\uffff’.
Звертання до кожної константи у програмі може бути таким
char.MinValue char.MaxValue
⇑
Зв’язані теми
⇑