Функция Split (Visual Basic)

Обновлен: Ноябрь 2007

Возвращает одномерный массив (с индексацией от нуля), содержащий указанное число подстрок.

Function Split(
   ByVal Expression As String,
   Optional ByVal Delimiter As String = " ",
   Optional ByVal Limit As Integer = -1,
   Optional ByVal Compare As CompareMethod = CompareMethod.Binary
) As String()

Параметры

  • Expression
    Необходимо. Выражение String, содержащее подстроки и разделители.

  • Delimiter
    Необязательно. Одиночный знак, используемый для обозначения границ подстроки. Если аргумент Delimiter опущен, в качестве разделителя используется знак пробела (" ").

  • Limit
    Необязательно. Максимальное число подстрок, на которые должна быть разделена входная строка. По умолчанию, –1, указывает, что входная строка должна быть разбита при каждом вхождении строки Delimiter.

  • Compare
    Необязательно. Числовое значение, которое указывает вид сравнения, выполняемого при оценке подстрок. См. "Параметры" для значений.

Возвращаемые значения

Массив String. Если Expression является строкой нулевой длины (" "), Split возвращает одноэлементный массив, содержащий строку нулевой длины. Если Delimiter является строкой нулевой длины или он не найден ни в одном из Expression, Split возвращает одноэлементный массив, состоящий из строки Expression.

Settings

Аргумент Compare может принимать следующие значения:

Константа

Описание

Значение

CompareMethod.Binary

Выполняет двоичное сравнение

0

CompareMethod.Text

Выполняется текстовое сравнение

1

Заметки

По умолчанию или если Limit равняется -1, функция Split разбивает входную строку при каждом вхождении строки разделителя и возвращает подстроки в массиве. При значении параметра Limit больше, чем нуль, функция Split разбивает строку на первом Limit-1 вхождении разделителя и возвращает массив с результирующими подстроками. Например, Split("a:b:c", ":") возвращает массив {"a", "b", "c"}, пока Split("a:b:c", ":", 2) возвращает массив {"a", "b:c"}.

Когда функция Split встречает два разделителя в строке или разделитель в начале или конце строки, они интерпретируются как окружающие пустую строку (" "). Например, Split("xx", "x") возвращает массив, содержащий три пустых строки: одну от начала строки до первого вхождения "x", другую между двумя строками "x" и третью от последнего "x" до конца строки.

В этой таблице показано, как необязательные параметры Delimiter, Limit и Compare могут изменить поведение функции Split.

Вызов разделителя

Возвращаемое значение

Split("42, 12, 19")

{"42," , "12," , "19"}

Split("42, 12, 19", ", ")

{"42", "12", "19"}

Split("42, 12, 19", ", ", 2)

{"42", "12, 19"}

Split("192.168.0.1", ".")

{"192", "168", "0", "1"}

Split("Alice and Bob", " AND ")

{"Алиса и Боб"}

Split("Alice and Bob", " AND ", ,CompareMethod.Text)

{"Алиса", "Боб"}

Split("someone@example.com", "@",1)

{"someone@example.com"}

Split("someone@example.com", "@",2)

{"someone", "example.com"}

Пример

В следующем примере демонстрируется разбиение строки относительно пробелов.

Dim TestString As String = "Look at these!"
' Returns an array containing "Look", "at", and "these!".
Dim TestArray() As String = Split(TestString)

В следующем примере демонстрируется разбиение строки с несколькими разделителями в строку и фильтрация пустых строк.

Dim TestString As String = "apple    pear banana  "
Dim TestArray() As String = Split(TestString)
' TestArray holds {"apple", "", "", "", "pear", "banana", "", ""}
Dim LastNonEmpty As Integer = -1
For i As Integer = 0 To TestArray.Length - 1
    If TestArray(i) <> "" Then
        LastNonEmpty += 1
        TestArray(LastNonEmpty) = TestArray(i)
    End If
Next
ReDim Preserve TestArray(LastNonEmpty)
' TestArray now holds {"apple", "pear", "banana"}

Требования

Пространство имен:Microsoft.VisualBasic

**Модуль:**Strings

**Сборка:**Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)

См. также

Ссылки

Сводка по работе со строками

Функция Join (Visual Basic)

Перечисление CompareMethod