Основы программирования на C#


Класс char - часть 4


Результаты консольного вывода, порожденного выполнением метода, изображены на рис. 13.1.

Вызовы статических методов класса char

Рис. 13.1.  Вызовы статических методов класса char

Кроме статических методов, у класса Char есть и динамические. Большинство из них - это методы родительского класса Object, унаследованные и переопределенные в классе Char. Из собственных динамических методов стоит отметить метод CompareTo, позволяющий проводить сравнение символов. Он отличается от метода Equal тем, что для несовпадающих символов выдает "расстояние" между символами в соответствии с их упорядоченностью в кодировке Unicode. Приведу пример:

public void testCompareChars() { char ch1, ch2; int dif; Console.WriteLine("Метод CompareTo"); ch1='A'; ch2= 'Z'; dif = ch1.CompareTo(ch2); Console.WriteLine("Расстояние между символами {0}, {1} = {2}", ch1, ch2, dif); ch1='а'; ch2= 'А'; dif = ch1.CompareTo(ch2); Console.WriteLine("Расстояние между символами {0}, {1} = {2}", ch1, ch2, dif); ch1='Я'; ch2= 'А'; dif = ch1.CompareTo(ch2); Console.WriteLine("Расстояние между символами {0}, {1} = {2}", ch1, ch2, dif); ch1='A'; ch2= 'A'; dif = ch1.CompareTo(ch2); Console.WriteLine("Расстояние между символами {0}, {1} = {2}", ch1, ch2, dif); ch1='А'; ch2= 'A'; dif = ch1.CompareTo(ch2); Console.WriteLine("Расстояние между символами {0}, {1} = {2}", ch1, ch2, dif); ch1='Ё'; ch2= 'А'; dif = ch1.CompareTo(ch2); Console.WriteLine("Расстояние между символами {0}, {1} = {2}", ch1, ch2, dif); }//TestCompareChars

Результаты сравнения изображены на рис. 13.2.

Сравнение символов

Рис. 13.2.  Сравнение символов

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




Начало  Назад  Вперед