Вторник, 26.11.2024, 15:02
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
База языка C# [3]
В данном разделе будут статьи по базовым понятиям языка C#
Основы языка С# [22]
Раздел продолжает рассматривать основы языка C#
Задачи [2]
примеры решения задач
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Поиск
Главная » Статьи » C# » Основы языка С#

Символы char

Тип char предназначен для хранения символа в кодировке Unicode.
Замечание. Кодировка Unicode является двухбайтной, т.е. каждый символ представлен двумя байтами, а не одним, как это сделано кодировке ASCII, используемой в ОС Windows. Из-за этого могут возникать некоторые проблемы, если вы решите, например, работать посимвольно с файлами, созданными в стандартном текстовом редакторе Блокнот. Способ решения этой проблемы будет рассмотрен в разделе, посвященном работе с файлами.
Символьный тип относится к встроенным типам данных С# и соответствует стандартному классу Сhar библиотеки .Net из пространства имен System. В этом классе определены статические методы, позволяющие задавать вид и категорию символа, а также преобразовывать символ в верхний или нижний регистр, в число. Рассмотрим основные методы:

Метод Описание
GetNumericValue Возвращает числовое значение символа, если он является цифрой, и -1 в противном случае.
GetUnicodeCategory Возвращает категорию Unicode-символа.
В Unicode символы разделены на категории, например, цифры (DecimalDigitNumber), римские цифры (LetterNumber), разделители строк (LineSeparator), буквы в нижнем регистре (LowercaseLetter) и т.д.
IsControl Возвращает true, если символ является управляющим (‘\n’, ‘\t’ или ‘\r’).
IsDigit Возвращает true, если символ является десятичной цифрой.
IsLetter Возвращает true, если символ является буквой.
IsLetterOrDigit Возвращает true, если символ является буквой или десятичной цифрой.
IsLower Возвращает true, если символ задан в нижнем регистре.
IsNumber Возвращает true, если символ является числом (десятичным или шестнадцатеричным).
IsPunctuation Возвращает true, если символ является знаком препинания.
IsSeparator Возвращает true, если символ является разделителем.
IsUpper Возвращает true, если символ задан в верхнем регистре.
IsWhiteSpace Возвращает true, если символ является пробельным (пробел, перевод строки, возврат каретки).
Parse Преобразует строку в символ, строка при этом должна состоять из одного символа.
ToLower Преобразует символ в нижний регистр
ToUpper Преобразует символ в верхний регистр

В следующем примере рассмотрим применение данных методов, для изучения кодировки Unicode:

class Program

{

    static void Main()

    {

        Console.WriteLine("{0,5} {1,8} {2,15}", "код", "символ", "назначение");

        for (ushort i = 0; i < 255; i++) // реальной верхней границей для i является значение 65535

        {

            char a = (char)i;

            Console.Write("\n{0,5} {1,8}", i, a);

            if (char.IsLetter(a)) Console.Write("{0,20}", "Буква");

            if (char.IsUpper(a)) Console.Write("{0,20}", "Верхний регистр");

            if (char.IsLower(a)) Console.Write("{0,20}", "Нижний регистр");

            if (char.IsControl(a)) Console.Write("{0,20}", "Управляющий символ");

            if (char.IsNumber(a)) Console.Write("{0,20}", "Число");

            if (char.IsPunctuation(a)) Console.Write("{0,20}", "Знак препинания");

            if (char.IsDigit(a)) Console.Write("{0,20}", "Цифра");

            if (char.IsSeparator(a)) Console.Write("{0,20}", "Разделитель");

            if (char.IsWhiteSpace(a)) Console.Write("{0,20}", "Пробельный символ");

        }

    }

}

Используя символьный тип можно организовать массив символов и работать с ним на основе базового класса Array:

class Program

{

    static void Print(char[] a)

    {

        foreach (char elem in a)

        {

            Console.Write(elem);

        }

        Console.WriteLine();

    }

    static void Main()

    {

        char[] a = { 'm', 'a', 'Х', 'i', 'M', 'u', 'S', '!', '!', '!' };

        Console.WriteLine("Исходный массива:");

        Print(a);

        for (int x = 0; x < a.Length; x++)

        {

            if (char.IsLower(a[x]))

            {

                a[x] = char.ToUpper(a[x]);

            }

        }

        Console.WriteLine("Измененный массив а:");

        Print(a);

        Console.WriteLine();

        //преобразование строки в массив символов

        char[] b = "кол около колокола".ToCharArray();

        Console.WriteLine("Исходный массив b:");

        Print(b);

        Array.Reverse(b);

        Console.WriteLine("Измененный массив b:");

        Print(b);

    }

}

Результат работы программы:
Исходный массив а:
maXiMuS!!!
Измененный массив а:
MAXIMUS!!!
Исходный массив b:
кол около колокола
Измененный массив b:
алоколок олоко лок

Категория: Основы языка С# | Добавил: solowey (20.01.2016)
Просмотров: 228 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Вход на сайт