Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Символы(Char). Методы структуры Char



Переменную можно объявить специальным символьным типом – Char. Под символом мы понимаем любую букву, цифру, знак препинания или другой знак на клавиатуре и не только на клавиатуре.

В первом приближении можно считать, что символ – это строка длины 1. Объявим для примера две переменные:

Dim s As String = "Ш"

Dim c As Char = "Ш"

В большинстве случаев вследствие неявного преобразования типов эти две переменные ведут себя одинаково.

Методы структуры Char. В пространстве имен System имеется структура Char, обладающая рядом полезных методов для работы с символами. О них я уже говорил в 14.3.1. Сейчас просто повторюсь:

Dim Символ As Char = "Ж"

Debug.WriteLine("Набран символ " & Символ)

Debug.WriteLine("Это цифра? " & Char.IsDigit(Символ))

Debug.WriteLine("Это буква? " & Char.IsLetter(Символ))

Debug.WriteLine("Правда ли, что это буква или цифра? " & Char.IsLetterOrDigit(Символ))

Debug.WriteLine("Это строчная буква? " & Char.IsLower(Символ))

Debug.WriteLine("Это заглавная буква? " & Char.IsUpper(Символ))

Debug.WriteLine("Это знак препинания? " & Char.IsPunctuation(Символ))

Debug.WriteLine("Это пробел? " & Char.IsSeparator(Символ))

Debug.WriteLine("Превратить в строчную " & Char.ToLower(Символ))

Debug.WriteLine("Превратить в заглавную " & Char.ToUpper(Символ))

Вот что напечатает этот фрагмент:

Набран символ Ж

Это цифра? False

Это буква? True

Правда ли, что это буква или цифра? True

Это строчная буква? False

Это заглавная буква? True

Это знак препинания? False

Это пробел? False

Превратить в строчную ж

Превратить в заглавную Ж

 

Unicode символы. Переменная типа Char нынче занимает в памяти 2 байта, и поэтому в современной Windows насчитывается 65536 символов. Это так называемые Unicodeсимволы. Они пронумерованы от 0 до 65535. Порядковый номер любого Unicode символа нам сообщает функцияAscWмодуля Strings. Функция же ChrWэтого модуля наоборот – по номеру сообщает символ:

Функция Результат Пояснение
AscW("Ш") Буква Ш имеет номер 1064
ChrW(1064) Ш Номер 1064 соответствует букве Ш

Вот процедура, распечатывающая символы с 0-го по 1200-й, при этом по 64 символа в строку печати:

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

Dim Код As Long

Dim Символ As Char

For Код = 0 To 1200

Символ = ChrW(Код)

Debug.Write(Символ)

If Код Mod 64 = 0 Then Debug.WriteLine("")

Next

End Sub

Вот некоторые фрагменты из того, что будет распечатано этой процедурой:

!"#$%&'()*+,-./0123456789:;<=>?@

ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz

{|}~¡¢£¤¥¦§¨©ª«­®¯°±²³´µ¶·¸¹º»¼½¾¿À

ÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀ

΁΂΃΄΅Ά·ΈΉΊ΋Ό΍ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ΢ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπ

ρςστυφχψωϊϋόύώϏϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾϿЀ

ЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопр

стуфхцчшщъыьэюяѐёђѓєѕі

 

Вы видите здесь все цифры, знаки препинания, заглавные и строчные буквы латинского, греческого и русского алфавитов. А также видоизмененные латинские буквы для алфавитов некоторых стран Европы и мира. Если вы заберетесь дальше 1200-го символа, то увидите и арабскую вязь, и иероглифы, и другие алфавиты, и просто популярные значки:

ﵪ ﵫ ﵬ ﵭ ﵮ ༠༡༢༣༤༥༦༧༨༩ ༪ ༫ ༬ ༭ ༮ ༯ ༰ ༱ ༲ ༳

吁吂吃各吅吆吇合吉吊吋同名后吏吐向吒吓吔 ევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴ

☹☺☻☼☽☾☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓♔♕♖♗♘♙♚♛♜♝♞♟

✖✗✘✙✚✛✜✝✞✟✠✡✢✣✤✥✦✧✨✩✪✫✬✭✮✯✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾

✿❀❁❂❃❄❅❆❇❈❉❊❋ ♠♡♢♣♤♥♦♧♨♩♪♫♬♭♮♯

 

ASCII символы. Раньше переменная типа Char занимала в памяти 1 байт, и поэтому символов насчитывалось только 256. Они были сведены в так называемую ASCII-таблицу. Поскольку в нее нельзя было втиснуть все языки мира, то для разных стран символы таблицы со 128 по 255 могли быть разные. И сегодня мы можем по-старинке пользоваться ASCII-таблицей. В этом нам помогут две функции. Порядковый номер любого символа в ASCII-таблице нам сообщает функцияAscмодуля Strings. Функция же Chrэтого модуля наоборот – по номеру сообщает символ:

Функция Результат Пояснение
Asc("Ы") Буква Ы имеет номер 219
Chr(219) Ы Номер 219 соответствует букве Ы

Вот процедура, распечатывающая символы с 32-го по 255-й:

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

Dim Код As Long

For Код = 32 To 255

Debug.Write(Chr(Код))

Next

End Sub

Вот что будет распечатано этой процедурой:

!"#$%&'()*+,-./0123456789:;<=>?@

ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz

{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—?™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«­®Ї°±Ііґµ¶·ё№є»јЅѕї

АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя

 

Как видите, русские буквы (кириллица) расположены здесь совсем под другими номерами, чем в ипостаси Unicode символов.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.