Метод подстроки VB.NET с ПРИМЕРОМ

⚡ Умное резюме

VB.Net Substring extracМетод возвращает часть строки, указывая начальный индекс и необязательную длину. Метод принадлежит классу String, отсчитывает символы с нуля и возвращает совершенно новую строку, не изменяя исходную.

  • 🔢 Индекс с нулевой базой: Метод Substring отсчитывает символы, начиная с индекса 0, поэтому первая буква строки находится на нулевой позиции.
  • ☑️ Две перегрузки: Передача одного аргумента возвращает все символы, начиная с указанного индекса, а передача двух аргументов возвращает фиксированное количество символов.
  • ✂️ Extracт по позиции: Используйте комбинацию Substring с IndexOf или LastIndexOf для захвата текста до или после определенного символа.
  • ⚠️ Безопасное индексирование: Отрицательный или выходящий за пределы допустимого диапазона индекс вызывает исключение ArgumentOutOfRangeException, поэтому перед вызовом метода проверьте значения.
  • 🔤 Неизменяемый результат: Функция Substring возвращает новую строку, оставляя исходную строку без изменений, что соответствует неизменяемости строк в .NET.
  • 🤖 Помощь ИИ: GitHub Copilot и IntelliCode В Visual Studio 2026 предлагаются корректные вызовы функции Substring и отмечаются индексы, выходящие за пределы диапазона, по мере ввода текста.

VB.Net Подстрока

Что такое подстрока?

Функция Substring используется для получения части указанной строки. Этот метод определен в классе String. Microsoft VB.NetНеобходимо указать начальный индекс, с которого будет извлекаться строка.tracТед. Строка будет эксtracот этого индекса до указанной вами длины.

До того как бывшийtracЭто помогает понять синтаксис, который ожидает метод Substring.

Синтаксис подстроки

Функция принимает два аргумента, как показано в следующем синтаксисе:

Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String

Здесь,

  • Ключевое слово ByVal обозначает передачу по значению, которая представляет собой механизм передачи аргументов функциям.
  • start_Index — это индекс, с которого будет получена подстрока.
  • Параметр sub_length обозначает длину строки, до которой она будет скопирована, начиная с начального индекса (start_Index). Эта длина измеряется в количестве символов. Функция вернет результат.tracподстрока ted.

Начальный индекс нулевой, поэтому первый символ строки находится в позиции 0, а не в позиции 1.

После определения синтаксиса, следующие примеры демонстрируют работу метода Substring в консольном приложении.

Примеры

Шаг 1) Создайте новое консольное приложение.

Шаг 2) Добавьте в него следующий код:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim subst As String = st.Substring(0, 4)

        Console.WriteLine("The substring is: {0}", subst)

        Console.ReadKey()
    End Sub

End Module

Шаг 3) Нажмите кнопку «Пуск» на панели инструментов, чтобы выполнить код. Вы должны получить следующий результат:

Пример вывода подстроки в VB.Net

Мы использовали следующий код:

Пример кода для работы с подстроками в VB.Net

Объяснение Code:

  1. Создание модуля с именем Module1.
  2. Запускаем основную подпроцедуру.
  3. Определение строковой переменной с именем st и присвоение ей значения. Guru99 к этому.
  4. Определяем строковую переменную с именем 'subst' как подстроку строки 'st', начиная с индекса 0, длиной 4 символа.
  5. Печать текста и указанной выше подстроки на консоли.
  6. Приостановка окна консоли на некоторое время в ожидании действий пользователя по его закрытию.
  7. Конец основной подпроцедуры.
  8. Конец модуля.

Один аргумент

Что если мы передадим функции только один аргумент? Функция скопирует все данные в строке, которая начинается с этого индекса. Происходит следующее: функция Substring внутренне копирует все строковые данные по этому индексу, а также те, которые следуют за этим индексом. Например:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim subst As String = st.Substring(4)

        Console.WriteLine("The substring is: {0}", subst)


        Console.ReadKey()

    End Sub

End Module

Нажмите кнопку «Пуск», чтобы запустить код. Он должен вернуть следующее:

Функция подстроки в VB.Net с одним аргументом

Функция Substring вернула 99. Мы передали функции параметр 4, что означает, что она начнет выполняться.tract — это подстрока от символа с индексом 4 до конца строки. 9 — это символ с индексом 4 в строке. Guru99, отсюда и extracНачалось это именно там.

Помимо удаления символов по одному индексу, метод Substring также может удалять символы в середине строки.

Средние персонажи

Мы также можем получить средние символы рассматриваемой строки. В этом случае нам нужно указать только начальный индекс и длину строки, которая нам нужна. В следующем примере мы получаем подстроку указанной строки из индекса 2, и длина строки будет равна 2 символам:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim subst As String = st.Substring(2, 2)

        Console.WriteLine("The substring is: {0}", subst)


        Console.ReadKey()

    End Sub

End Module

Нажмите кнопку «Пуск» на панели инструментов, чтобы запустить код. Вы получите следующий результат:

Подстрока средних символов в VB.Net

В приведенном выше примере функция Substring вернула ru. Мы передали функции параметры (2, 2). Первые 2 указывают функции, с чего начать пример.tracИндекс 2 указывает функции возвращать подстроку длиной всего в 2 символа. Это означает, что...tracПодстрока должна начинаться с элемента, расположенного по индексу 2 строки. Guru99, что равно r. Поскольку возвращаемая подстрока должна иметь длину всего 2 символа, extracФункция tion не переходит дальше буквы 'u', поэтому она вернула 'ru'.

Один символ

Мы можем использовать функцию Substring для получения одного символа из строки. В таком случае вам необходимо сделать выделение, но к персонажу можно получить прямой доступ. Это немного быстрее. Следующий пример демонстрирует два способа, с помощью которых мы можем добиться этого:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"

        Dim mid1 As Char = st(1)
        Console.WriteLine(mid1)

        Dim mid2 As String = st.Substring(1, 1)

        Console.WriteLine(mid2)

        Console.ReadKey()

    End Sub

End Module

Нажмите кнопку «Пуск», чтобы запустить код. Вы получите следующий результат:

Вывод подстроки в формате одного символа в VB.Net

Мы использовали следующий код:

VB.Net Подстрока, код одного символа

Объяснение Code:

  1. Создание модуля с именем Module1.
  2. Запускаем основную подпроцедуру.
  3. Определение строковой переменной с именем st и присвоение ей значения. Guru99 к этому.
  4. Определение строковой переменной с именем Mid1 и получение символа с индексом 1 из String st. Этот символ будет присвоен переменной Mid1.
  5. Печать вышеуказанного символа на консоли.
  6. Определение строковой переменной с именем Mid2 и получение символа с индексом 1 и длиной 1 из String st. Длина 1 означает, что он вернет тот же символ по начальному индексу. Отсчет начинается с указанного вами начального индекса. Этот символ будет присвоен переменной Mid2.
  7. Печать вышеуказанного символа на консоли.
  8. Приостановка окна консоли на некоторое время в ожидании действий пользователя по его закрытию.
  9. Конец основной подпроцедуры.
  10. Конец модуля.

Как только вы почувствуете себя комфортно,tracПри работе с подстроками стоит знать, как обрабатывать ошибки, которые может вызвать этот метод.

Распространенные ошибки при работе с подстроками и способы их предотвращения.

Метод `Substring` строго относится к передаваемым ему значениям. Если аргумент выходит за пределы строки, VB.Net генерирует исключение `ArgumentOutOfRangeException` и останавливает выполнение программы. Понимание этих правил поможет вам избежать этой распространенной ошибки.

Данный метод вызывает исключение в трех ситуациях:

  • start_Index — отрицательное число.
  • Начальный индекс превышает длину строки.
  • Сумма значений start_Index и sub_length указывает на область, выходящую за конец строки.

Часто встречающаяся ошибка — использование результата функции IndexOf без предварительной проверки. Если IndexOf не находит символ, она возвращает -1, а передача -1 в Substring вызывает исключение. Следующий код предотвращает это:

Module Module1
    Sub Main()

        Dim st As String = "Guru99"
        Dim pos As Integer = st.IndexOf("9")

        If pos >= 0 Then
            Dim subst As String = st.Substring(pos)
            Console.WriteLine(subst)
        Else
            Console.WriteLine("Character not found")
        End If

        Console.ReadKey()
    End Sub

End Module

Проверка индекса перед вызовом обеспечивает бесперебойную работу приложения, даже если входная строка не содержит ожидаемого символа.

Получение подстроки до или после символа

Распространенной задачей являетсяtracРазделение текста, который находится до или после определенного символа, например, разделение адреса электронной почты по знаку @. VB.Net не предоставляет для этого специальной функции, но вы можете использовать комбинацию IndexOf и Substring для достижения этой цели.

Текст перед символом: Вызовите метод IndexOf для определения местоположения символа, затем передайте этот индекс в качестве длины методу Substring:

Module Module1
    Sub Main()

        Dim email As String = "guru99@example.com"
        Dim position As Integer = email.IndexOf("@")

        Dim namePart As String = email.Substring(0, position)
        Console.WriteLine(namePart)

        Console.ReadKey()
    End Sub

End Module

Код выводит guru99, ту часть строки, которая находится перед знаком @.

Текст после символа: Добавьте 1 к индексу и позвольте функции Substring дойти до конца строки:

Dim domainPart As String = email.Substring(position + 1)
Console.WriteLine(domainPart)

Эта функция возвращает example.com. Если символ встречается более одного раза, используйте LastIndexOf вместо IndexOf, чтобы начать поиск с последнего вхождения, а не с первого.

Функции подстроки, левой, правой и средней строк:

Visual Basic унаследовал три устаревшие строковые функции из более ранних версий: Left, Right и Mid. Они находятся в... MicrosoftИспользование пространства имен .VisualBasic может показаться более привычным разработчикам, переходящим с классического VB.

  • Left(string, n) Возвращает первые n символов строки.
  • Right(string, n) Возвращает последние n символов строки.
  • Mid(string, start, length) Возвращает часть строки, начиная с исходной позиции, подобно функции Substring.

Ключевое различие заключается в способе подсчета позиций. Функция Mid использует отсчет с единицы, поэтому первый символ находится на позиции 1, в то время как метод Substring использует отсчет с нуля и начинает отсчет с 0. Substring — это стандартный подход .NET, и он работает одинаково во всех языках .NET, поэтому его рекомендуется использовать для нового кода. Left, Right и Mid следует оставить для поддержки старых проектов Visual Basic.

Часто задаваемые вопросы (FAQ)

Да. Метод Substring использует нулевой индекс, поэтому первый символ строки находится по индексу 0, второй — по индексу 1 и так далее. Отсчет от нуля важен при вычислении начальной позиции.

Нет. Строки в VB.Net неизменяемы, поэтому метод Substring никогда не изменяет исходную строку. Он возвращает совершенно новую строку, содержащую исходный код.tracсимволы отбрасываются, в то время как исходная строка сохраняет свое первоначальное значение без изменений.

Подстрока extracЭто непрерывный фрагмент строки, заданный индексом и длиной. Split Функция разбивает строку на массив более мелких строк в местах, где встречается разделитель, например, запятая или пробел. Используйте Split для списков и Substring для фрагментов.

Передача значения длины 0 возвращает пустую строку (“”), а не Nothing. Вызов является допустимым и не вызывает исключения, при условии, что начальный индекс по-прежнему находится в пределах строки.

Метод Substring сохраняет указанную вами часть строки и отбрасывает остальное. Метод Remove делает обратное: он удаляет символы, начиная с заданного индекса, и возвращает оставшуюся строку. Это взаимодополняющие операции.

Да. Пробелы, табуляция и знаки препинания считаются одним символом при вычислении начального индекса и длины методом Substring. При подсчете учитывается каждая позиция в строке, включая пробелы, а не только видимые буквы.

Да. Второй пилот GitHub В Visual Studio 2026 комментарии, написанные простым языком, например, ex, преобразуются в текст.tracПреобразование текста перед запятой в работающий вызов подстроки с использованием IndexOf. Всегда проверяйте сгенерированные индексы, чтобы убедиться, что они находятся в пределах допустимого диапазона.

Да. Visual Studio 2026 объединяет GitHub Copilot с ИнтеллиCode чтобы отмечать потенциально выходящие за пределы диапазона индексы, предлагать правильные аргументы и завершать вызовы Substring по мере ввода, helping Вы предотвращаете исключение ArgumentOutOfRangeException до запуска программы.

Подведем итог этой публикации следующим образом: