Структура Сhar. Структура System.Сhar в библиотеке классов FCL используется для представления символа в стандарте Unicode. Значением объекта типа Charявляется 16-битовое числовое (порядковое) значение. Структура Char предоставляет ряд методов для выполнения различных операций над объектами этого типа, таких как сравнение, преобразование значения текущего объекта типа Char
в объект другого типа, определение категории Unicode объекта и др. Наиболее часто используемые методы и свойства структуры Charприведены в табл. 1.1, а примеры их применения показаны в листингах 1.1, 1.2 и на рис. 1.1, 1.2.
Таблица 1.1
Методы и свойства структуры Char
Название метода (свойства) | Описание |
Статические методы | |
GetNumericValue | Возвращает численное значение символа, если он яв-ляется цифрой, и –1 в противном случае |
GetUnicodeCategory | Возвращает значение Unicode категории символа, определяемое перечислением UnicodeCategory |
IsControl | Возвращает значение true, если символ является управляющим |
IsDigit | Возвращает значение true, если символ является десятичной цифрой |
IsLetter | Возвращает значение true, если символ является буквой |
IsLetterOrDigit | Возвращает значение true, если символ является буквой или цифрой |
IsLower | Возвращает значение true, если символ задан в нижнем регистре |
Окончание табл. 1.1
Название метода (свойства) | Описание |
IsNumber | Возвращает значение true, если символ является числом (десятичной или шестнадцатеричной цифрой) |
IsPunctuation | Возвращает значение true, если символ является знаком препинания |
IsSeparator | Возвращает значениеtrue, если символ является разделителем |
IsSurrogate | Некоторые символы Unicode с кодом в интервале [0x1000, 0x10FFF] представляются двумя 16-бит-ными суррогатными символами. Метод возвращает значениеtrue, если символ является суррогатным |
IsUpper | Возвращает значениеtrue, если символ задан в верхнем регистре |
IsWhiteSpace | Возвращает значениеtrue, если символ является белым пробелом. К белым пробелам, помимо пробела, относятся и другие символы, например символ конца строки и символ перевода каретки |
Parse | Преобразует строку в символ, при этом строка должна состоять из одного символа, иначе возникнет ошибка |
ToLower | Приводит символ к нижнему регистру |
ToUpper | Приводит символ к верхнему регистру |
Свойства | |
MaxValue,MinValue | Возвращают символы с максимальным и минимальным кодом. Возвращаемые символы не имеют видимого образа |
Динамические методы | |
Equals(Object obj) | Возвращает значениеtrue, если параметр obj является экземпляром типа Char и равен значению данного экземпляра; в противном случае возвращает значение false |
CompareTo(Char) | Сравнивает данный экземпляр с заданным объектом типа Char, и показывает, расположен ли данный экземпляр перед, после или на той же позиции в порядке сортировки, что и заданный объект |
|
Листинг 1.1. Использование статических методов класса Сhar
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
Namespace TestCharMethods
{
Class Program
{
static void Main(string[ ] args)
{
Char a = 'Я',ch = 'a', ch1 = '1', lim = ';', chc = '\xA';;
// Вывод кодов символов
Console.WriteLine("a = {0}, код символа = {1}", a, (int)a);
Console.WriteLine("Статические методы класса Сhar:");
double d1, d2;
d1 = char.GetNumericValue(ch);
d2 = char.GetNumericValue(ch1);
Console.WriteLine("Метод GetNumericValue:");
Console.WriteLine("sym 'a' - value {0}", d1);
Console.WriteLine("sym '1' - value {0}", d2);
System.Globalization.UnicodeCategory cat1, cat2;
// Вывод значений категорий символов
|
cat1 = char.GetUnicodeCategory(ch1);
cat2 = char.GetUnicodeCategory(lim);
Console.WriteLine("Метод GetUnicodeCategory:");
Console.WriteLine("sym '1' - category {0}", cat1);
Console.WriteLine("sym ';' - category {0}", cat2);
Console.WriteLine("Метод IsControl:");
Console.WriteLine("sym '\xA' - IsControl - {0}",
char.IsControl(chc));
Console.WriteLine("sym ';' - IsControl - {0}",
char.IsControl(lim));
Console.WriteLine("Метод IsSeparator:");
Console.WriteLine("sym ' ' - IsSeparator - {0}",
char.IsSeparator(' '));
Console.WriteLine("sym ';' - IsSeparator - {0}",
// Проверка, является ли символ управляющим
char.IsSeparator(lim));
Console.WriteLine("Метод IsSurrogate:");
Console.WriteLine("sym '\u10FF' - IsSurrogate - {0}",
char.IsSurrogate('\u10FF'));
Console.WriteLine("sym '\\' - IsSurrogate - {0}",
char.IsSurrogate('\\'));
Console.WriteLine("Метод Parse:");
string str = "A";
// Преобразование строки str в символ
ch = char.Parse(str);
Console.WriteLine("str:{0} char: {1}", str, ch);
// Вывод минимальных и максимальных значений символов и их
// кодов
Console.WriteLine("Минимальное и максимальное значение:
{0}, {1}",
char.MinValue.ToString(), char.MaxValue.ToString());
Console.WriteLine("Их коды: {0}, {1}", (int)char.MinValue,
(int)char.MaxValue);
Console.ReadLine();
}
}
}
Рис. 1.1. Вывод программы из листинга 1.1
Листинг 1.2. Использование методов Equals и CompareTo класса Сhar
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;