Основы работы со строками в Visual Basic
Тип данных String является последовательностью символов, каждый из которых, в свою очередь, является экземпляром типа данных Char. В этом разделе рассмотрены базовые понятия строк в Visual Basic.
Строковые переменные
Экземпляру строки может быть присвоено текстовое значение, содержащее последовательность символов. Пример.
Dim MyString As String
MyString = "This is an example of the String data type"
Переменная типа String может также принимать любое выражение, которое представляет собой строку. Ниже приводятся примеры.
Dim OneString As String
Dim TwoString As String
OneString = "one, two, three, four, five"
' Evaluates to "two".
TwoString = OneString.Substring(5, 3)
OneString = "1"
' Evaluates to "11".
TwoString = OneString & "1"
Любой текст, который присваивается переменной типа String, должен быть заключен в кавычки (""). Это означает, что кавычки в пределах строки не могут быть представлены кавычками. Например, следующий код вызовет ошибку компиляции:
Dim myString As String
' This line would cause an error.
' myString = "He said, "Look at this example!""
Этот код вызывает ошибку, так как компилятор разрывает строку после второй кавычки и остаток строки интерпретируется как код. Чтобы решить эту проблему, Visual Basic интерпретирует две кавычки в строковый литерал "одна кавычка" в строке. В следующем примере демонстрируется, как правильно включать в строку кавычки:
' The value of myString is: He said, "Look at this example!"
myString = "He said, ""Look at this example!"""
В предыдущем примере двойные кавычки перед словом Look становятся одной кавычкой в строке. Тройные кавычки в конце предложения представляют собой одинарную кавычку и символ окончания строки.
Символы в строках
Строку можно представить как последовательность значений типа Char, кроме того, тип String имеет встроенные функции, которые позволяют манипулировать строками подобно массивам. Как и все массивы в .NET Framework, они являются массивами, в которых индексация ведется от нуля. Можно обратиться к определенному символу в строке с помощью свойства Chars, которое предоставляет механизм доступа к символу по занимаемой им позиции в строке. Пример.
Dim myString As String = "ABCDE"
Dim myChar As Char
' The value of myChar is "D".
myChar = myString.Chars(3)
В приведенном выше примере свойство строки Chars возвращает четвертый символ в строке, D, и присваивает его переменной myChar. Размер строки можно получить, используя свойство Length. Если требуется выполнить несколько манипуляций со строкой, характерных для массивов, можно преобразовать ее в массив экземпляров Char, используя функцию строки ToCharArray. Пример.
Dim myString As String = "abcdefghijklmnop"
Dim myArray As Char() = myString.ToCharArray
Переменная myArray теперь содержит массив значений Char, каждый из которых представляет символ из myString.
Неизменность строк
Строка является неизменной. Это означает, что после создания ее значение не меняется. Однако это не запрещает присваивания более одного значения строковой переменной. Рассмотрим следующий пример.
Dim myString As String = "This string is immutable"
myString = "Or is it?"
Здесь создается переменная строки, задается ее значение, затем ее значение изменяется.
Точнее в первой строке создается экземпляр типа String и задается значение This string is immutable. Во второй строке примера создается новый экземпляр и получает значение Or is it?, и строковая переменная отбрасывает свою ссылку на первый экземпляр и сохраняет ссылку на новый экземпляр заданного значения.
В отличие от других основных типов, тип String является ссылочным. Когда в функцию или подпрограмму в качестве аргумента передается ссылочный тип данных, на самом деле передается ссылка на адрес в памяти, по которому расположены данные, а не фактическое значение строки. Точно так же в предыдущем примере имя переменной остается без изменений, но оно указывает на другой экземпляр класса String, которому присвоено новое значение.
См. также
Ссылки
Тип данных String (Visual Basic)
Тип данных Char (Visual Basic)