Метод подстроки VB.NET с ПРИМЕРОМ
⚡ Умное резюме
VB.Net Substring extracМетод возвращает часть строки, указывая начальный индекс и необязательную длину. Метод принадлежит классу String, отсчитывает символы с нуля и возвращает совершенно новую строку, не изменяя исходную.
Что такое подстрока?
Функция 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) Нажмите кнопку «Пуск» на панели инструментов, чтобы выполнить код. Вы должны получить следующий результат:
Мы использовали следующий код:
Объяснение Code:
- Создание модуля с именем Module1.
- Запускаем основную подпроцедуру.
- Определение строковой переменной с именем st и присвоение ей значения. Guru99 к этому.
- Определяем строковую переменную с именем 'subst' как подстроку строки 'st', начиная с индекса 0, длиной 4 символа.
- Печать текста и указанной выше подстроки на консоли.
- Приостановка окна консоли на некоторое время в ожидании действий пользователя по его закрытию.
- Конец основной подпроцедуры.
- Конец модуля.
Один аргумент
Что если мы передадим функции только один аргумент? Функция скопирует все данные в строке, которая начинается с этого индекса. Происходит следующее: функция 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
Нажмите кнопку «Пуск», чтобы запустить код. Он должен вернуть следующее:
Функция 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
Нажмите кнопку «Пуск» на панели инструментов, чтобы запустить код. Вы получите следующий результат:
В приведенном выше примере функция 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
Нажмите кнопку «Пуск», чтобы запустить код. Вы получите следующий результат:
Мы использовали следующий код:
Объяснение Code:
- Создание модуля с именем Module1.
- Запускаем основную подпроцедуру.
- Определение строковой переменной с именем st и присвоение ей значения. Guru99 к этому.
- Определение строковой переменной с именем Mid1 и получение символа с индексом 1 из String st. Этот символ будет присвоен переменной Mid1.
- Печать вышеуказанного символа на консоли.
- Определение строковой переменной с именем Mid2 и получение символа с индексом 1 и длиной 1 из String st. Длина 1 означает, что он вернет тот же символ по начальному индексу. Отсчет начинается с указанного вами начального индекса. Этот символ будет присвоен переменной Mid2.
- Печать вышеуказанного символа на консоли.
- Приостановка окна консоли на некоторое время в ожидании действий пользователя по его закрытию.
- Конец основной подпроцедуры.
- Конец модуля.
Как только вы почувствуете себя комфортно,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.






