Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Строки и символы.docx
Скачиваний:
20
Добавлен:
02.05.2019
Размер:
35.15 Кб
Скачать
      1. Строка как объект. Свойства и методы класса String

Строка – это не просто строка. Это объект. Объект класса String пространства имен System. Здесь та же ситуация, что и с массивами (Error: Reference source not found). Мы можем и не подозревать, что строка – объект, и тем не менее, успешно со строками работать.

Не путайте класс String с модулем Strings. Любая переменная (или литерал) строкового типа является специфическим экземпляром класса String, и чтобы воспользоваться его свойством или методом, вы просто пишете после имени переменной или литерала точку и за ней название свойства или метода, как мы делали это раньше.

Итак, строка обладает свойствами и методами своего класса. Разберем их.

Прежде всего, строка представляет собой последовательность символов, пронумерованных, начиная с 0. Вы можете легко обращаться к каждому символу по его номеру (индексу):

Debug.WriteLine("Гастроном".Chars(3)) 'Символ с индексом 3 в строке (т)

'Ищется первое вхождение символа "о" в строку и находится его индекс (5):

Debug.WriteLine("Гастроном".IndexOf("о"))

'Ищется последнее вхождение символа "о" в строку и находится его индекс (7):

Debug.WriteLine("Гастроном".LastIndexOf("о"))

Debug.WriteLine("Гастроном".Length) 'Длина строки (9)

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

т

5

7

9

Строкой легко заполнить символьный массив:

Dim Буквы() As Char 'Объявляем массив символов

Буквы = "Гастроном".ToCharArray 'Заполняем его буквами слова "Гастроном"

Debug.WriteLine(Буквы(6)) 'Печатается буква н

Вот еще несколько методов:

'Часть строки длиной 4, начиная с символа с индексом 3 (трон):

Debug.WriteLine("Гастроном".Substring(3, 4))

Debug.WriteLine("Гастроном".StartsWith("Га")) 'Правда ли, что "Гастроном" начинается с "Га"

Debug.WriteLine("Гастроном".EndsWith("ном")) 'Правда ли, что "Гастроном" заканчивается на "ном"

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

трон

True

True

Вот методы, видоизменяющие строку:

Debug.WriteLine("Гастроном".Remove(2, 6)) 'Убрать из строки 6 символов, начиная с номера 2

'Вставить в строку перед символом номер 2 другую строку ("лактический а"):

Debug.WriteLine("Гастроном".Insert(2, "лактический а"))

Debug.WriteLine("Победа".Replace("бед", "годк")) 'Заменить в строке одну часть ("бед") на другую ("годк")

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

Гам

Галактический астроном

Погодка

Если строка состоит из частей, разделенных пробелами, запятыми или другими символами, этими частями легко можно заполнить массив строк:

Dim Предложение As String = "Маша ела кашу"

Dim Слова_в_предложении() As String 'Объявляем массив строк

'Заполняем его частями строки Предложение, разделенными пробелами (" "):

Слова_в_предложении = Предложение.Split(" ")

Dim Список_покупок As String = "хлеб,молоко,кофе"

Dim Покупки() As String 'Объявляем массив строк

'Заполняем его частями строки Список_покупок, разделенными запятыми (","):

Покупки = Список_покупок.Split(",")

После выполнения этого фрагмента массив Слова_в_предложении будет состоять из строк "Маша", "ела", "кашу", а массив Покупки будет состоять из строк "хлеб", "молоко", "кофе".

Кроме рассмотренных методов у класса String есть еще методы, которые дублируют работу функций модуля Strings.

Определите без компьютера, что напечатает оператор

Debug.WriteLine(ChrW(AscW("Ю") + 1))

«Детская шифровка». Среди детей встречается игра, заключающаяся в зашифровке своей речи «для секретности» за счет вставки в произносимые слова какого-нибудь звукосочетания, например, «быр». Тогда вместо слова «корова» будет произнесено «кобырробырвабыр». Составьте программу, которая распечатывает любую строку из 6 букв, после каждой второй буквы вставляя «быр». Если получилось, то решите эту задачу для строки произвольной длины.