Строка – это не просто строка. Это объект. Объект класса Stringпространства имен System. Здесь та же ситуация, что и с массивами (15.6). Мы можем и не подозревать, что строка – объект, и тем не менее, успешно со строками работать.
Не путайте класс String с модулем Strings. Любая переменная (или литерал) строкового типа является специфическим экземпляром класса String, и чтобы воспользоваться его свойством или методом, вы просто пишете после имени переменной или литерала точку и за ней название свойства или метода, как мы делали это раньше.
Итак, строка обладает свойствами и методами своего класса. Разберем их.
Прежде всего, строка представляет собой последовательность символов, пронумерованных, начиная с 0. Вы можете легко обращаться к каждому символу по его номеру (индексу):
Debug.WriteLine("Гастроном".Chars(3)) 'Символ с индексом 3 в строке (т)
'Ищется первое вхождение символа "о" в строку и находится его индекс (5):
Debug.WriteLine("Гастроном".IndexOf("о"))
'Ищется последнее вхождение символа "о" в строку и находится его индекс (7):
Debug.WriteLine("Победа".Replace("бед", "годк")) 'Заменить в строке одну часть ("бед") на другую ("годк")
Вот что напечатает этот фрагмент:
Гам
Галактический астроном
Погодка
Если строка состоит из частей, разделенных пробелами, запятыми или другими символами, этими частями легко можно заполнить массив строк:
Dim Предложение As String = "Маша ела кашу"
Dim Слова_в_предложении() As String 'Объявляем массив строк
'Заполняем его частями строки Предложение, разделенными пробелами (" "):
Слова_в_предложении = Предложение.Split(" ")
Dim Список_покупок As String = "хлеб,молоко,кофе"
Dim Покупки() As String 'Объявляем массив строк
'Заполняем его частями строки Список_покупок, разделенными запятыми (","):
Покупки = Список_покупок.Split(",")
После выполнения этого фрагмента массив Слова_в_предложении будет состоять из строк "Маша", "ела", "кашу", а массив Покупки будет состоять из строк "хлеб", "молоко", "кофе".
Кроме рассмотренных методов у класса String есть еще методы, которые дублируют работу функций модуля Strings.
Задание 1.
Определите без компьютера, что напечатает оператор
Debug.WriteLine(ChrW(AscW("Ю") + 1))
Задание 2.
«Детская шифровка». Среди детей встречается игра, заключающаяся в зашифровке своей речи «для секретности» за счет вставки в произносимые слова какого-нибудь звукосочетания, например, «быр». Тогда вместо слова «корова» будет произнесено «кобырробырвабыр». Составьте программу, которая распечатывает любую строку из 6 букв, после каждой второй буквы вставляя «быр». Если получилось, то решите эту задачу для строки произвольной длины.