Строки. Строковые функции.
Строковая переменная содержит текст в кодировке Unicode длиной до 231 (более 2 миллиардов!) символов. Как было показано выше, значения строкового типа заключаются в кавычки:
Dim message As String message = "Help"
Конкатенация (объединение) строк обычно выполняется оператором &. Старый вариант с оператором + тоже работает, но при отключении жесткой проверки типов он может вызвать серьезные проблемы, поэтому использовать знак + при конкатенации не рекомендуется. Старый способ идентификации строковых переменных с суффиксом $ (например, aStringVariable$) иногда используется для временных переменных.
Примечание
В VB.NET строковые переменные не относятся к базовому типу, а являются экземпляра-ми класса String. Некоторые нюансы, связанные с их применением, будут рассмотрены в главе 4, а пока мы упомянем лишь одну особенность, о которой необходимо знать для эффективной работы со строками в VB.NET: при любой модификации строки в VB.NET создается новый экземпляр строки. Частая модификация строки требует больших затрат ресурсов, поэтому в VB.NET имеется класс StringBuilder для выполнения подобных операций (например, выборки данных из буфера и объединения их в строковой переменной).
Примечание
В отличие от предыдущих версий VB, в VB.NET не поддерживаются строки фиксированной длины.
Строковые функции
В вашем распоряжении остались все классические строковые функции VB6 (Left, Right, Mid и т. д.), но версии этих функций с суффиксом $ теперь не поддерживаются. В табл. 3.5 перечислены важнейшие функции класса String, заменяющие строковые функции VB6. Не забывайте, что при многократной модификации строк (например, при вызове Mid в цикле) следует использовать класс StringBuilder, описанный в главе 4. Некоторые из приведенных методов используют массивы, которые будут рассмотрены ниже в этой главе.
При программировании для .NET рекомендуется по возможности использовать методы и свойства класса String, входящего в .NET Framework. Самые распространенные строковые методы перечислены в табл. 3.6.
Таблица 3.5. Основные строковые функции.
Функция | Описание |
---|---|
Asc | Возвращает код первого символа в строке |
Chr | Преобразует число в символ Unicode |
Filter | Получает строковый массив и искомую строку; возвращает одномерный массив всех элементов, в которых был найден заданный текст |
GetChar | Возвращает символ строки с заданным индексом в формате Char. Индексация символов начинается с 1. Например, команда GetChar("Hello",2) возвращает символ "е" в виде типа Char |
InStr | Возвращает позицию первого вхождения одной строки в другой строке |
InStrRev | Возвращает позицию последнего вхождения одной строки в другой строке |
Join | Строит большую строку из меньших строк |
LCase | Преобразует строку к нижнему регистру |
Left | Находит или удаляет заданное количество символов от начала строки |
Len | Возвращает длину строки |
LTrim | Удаляет пробелы в начале строки |
Mid | Находит или удаляет символы в строке |
Replace | Заменяет одно или более вхождений одной строки в другой строке |
Right | Находит или удаляет заданное количество символов в конце строки |
RTrim | Удаляет пробелы в конце строки |
Space | Генерирует строку заданной длины, состоящую из пробелов |
Split | Позволяет разбивать строку по заданным разделителям (например, пробелам) |
Str | Возвращает строковое представление числа |
StrComp | Альтернативный способ сравнения строк |
StrConv | Преобразует строку из одной формы в другую (например, с изменением регистра) |
String | Создает строку, состоящую из многократно повторяющегося символа |
Trim | Удаляет пробелы в начале и конце строки |
UCase | Преобразует строку к верхнему регистру |