Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Символи




 

Символьний тип char призначений для зберігання символів в кодуванні Unicode. Символьний тип відноситься до вбудованих типів даних С# і відповідає стандартному класу Char бібліотеки.NET з простору імен System. У цьому класі визначені статичні методи, які дозволяють задати вигляд і категорію символу, а також перетворити символ у верхній, нижній регістр, або в число. Основні методи приведені в таблиці 6.3.

 

Таблиця 6.3

Основні методи класу System.Char

 

Метод Опис
GetNumericValue Повертає числове значення символу, якщо він є цифрою, інакше -1
GetUnicodeCategory Повертає категорію Unicode-символ
IsControl Повертає true, якщо символ є таким, що управляє
IsDigit Повертає true, якщо символ є десятковою цифрою
IsLetter Повертає true, якщо символ є буквою
IsLetterOrDigit Повертає true, якщо символ є буквою або цифрою
IsLower Повертає true, якщо символ в нижньому регістрі
IsNumber Повертає true, якщо символ є числом
IsPunctuation Повертає true, якщо символ є розділовим знаком
IsSeparator Повертає true, якщо символ є роздільником
IsUpper Повертає true, якщо символ у верхньому регістрі
IsWhiteSpace Повертає true, якщо символ є пробільним (пропуск, переведення рядка та повертання каретки)
Parse Перетворить рядок в символ (рядок повинен складатися з одного символу)
ToLower Перетворить символ в нижній регістр
ToUpper Перетворить символ у верхній регістр
MaxValue, MinValue Повертають символи з максимальним і мінімальними кодами (ці символи не мають видимого представлення)

 

У лістингу 6.9 продемонстровано використання цих методів.

 

Лістинг 6.9. Використання методів класу System.Char

using System;

namespace exam35

{

class Classl

{

static void Main()

{

try

{

char a, b = 'B', c = '\x63', d = '\u0032'; // 1

Console.WriteLine(" {0} {1} {2}", b, c, d);

Console.WriteLine(" {0} {1} {2}",

char.ToLower(b), char.ToUpper(c), char.GetNumericValue(d));

do // 2

{

Console.Write("Введіть символ: ");

a = char.Parse(Console.ReadLine());

Console.WriteLine("Введений символ {0}, його код - {1} ", a, (int)a);

if (char.IsLetter(a))Console.WriteLine("Буква");

if (char.IsUpper(a))Console.WriteLine("Верхній peг.");

if (char.IsLower(a))Console.WriteLine("Нижній peг.");

if (char.IsControl(a))Console.WriteLine("Керуючий");

if (char.IsNumber(a))Console.WriteLine("Число");

if (char.IsPunctuation(a)) Console.WriteLine("Роздільник");

} while (a!= 'q');

}

 

catch (Exception a)

{

Console.WriteLine(a.Message);

Console.WriteLine("Виникло виключення");

return;

}

}

}

}

 

У операторові 1 описані три символьних змінних. Вони ініціалізувалися символьними літералами в різних формах представлення. Далі виконуються виведення і перетворення символів.

У циклі 2 аналізується символ, що вводиться з клавіатури. Можна вводити і символи, що управляють, використовуючи поєднання клавіші Ctrl з латинськими буквами. При введенні використаний метод Parse, що перетворює рядок, який повинен містити єдиний символ, в символ типу char. Оскільки вводиться рядок, введення кожного символу слід завершувати натисненням клавіші Enter. Цикл виконується, поки користувач не введе символ q.

Виведення символу супроводжується його кодом в десятковому вигляді. Для виведення коду використовується явне перетворення до цілого типу. Явне перетворення з символів в рядки і назад в С# не існує, неявним же чином будь-який об'єкт, у тому числі і символ, може бути перетворений в рядок, наприклад:

 

string s = 'к' + 'і' + 'т'; // результат - рядок "кіт"

 

При введенні і перетворенні можуть виникати виняткові ситуації, наприклад, якщо користувач введе порожній рядок. Для “м’якого” завершення програми передбачена обробка виключень.

 

 

6.8.2. Масиви символів

 

Масив символів, як і масив будь-якого іншого типу, побудований на основі базового класу Array, деякі властивості і методи якого були перераховані в таблиці 6.1. Застосування цих методів дозволяє ефективно вирішувати деякі завдання. Простий приклад приведений в лістингу 6.10.

 

Лістинг 6.10. Робота з масивом символів

using System;

namespace ConsoleApplicationi

{

class Classl

{

static void Main()

{

char[] a = { 'm', 'a', 's', 's', 'i', 'v' }; //1

char[] b = "Привіт я Ленін".ToCharArray(); //2

PrintArray("Початковий масив а:", a);

int pos = Array.IndexOf(a, 'm');

a[pos] = 'M';

PrintArray("Змінений масив a:", a);

PrintArray("Початковий масив b:", b);

Array.Reverse(b);

PrintArray("Змінений масив b:", b);

}

public static void PrintArray(string header, Array a)

{

Console.WriteLine(header);

foreach (object x in a) Console.Write(x);

Console.WriteLine("\n");

}

}

}

 

Результат роботи програми:

Початковий масив а:

massiv

Змінений массив а:

Massiv

Початковий массив b:

Привіт я Ленін

Змінений масив b:

нінеЛ я тівирП

 

Символьний масив можна ініціалізувати, або безпосередньо задаючи його елементи (оператор 1), або застосовуючи метод ToCharArray класу string, який розбиває початковий рядок на окремі символи (оператор 2).

 




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 500; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.