VB.NET Метод на подниз с ПРИМЕР

⚡ Умно обобщение

VB.Net подниз extracts част от String, като задава начален индекс и опционална дължина. Методът принадлежи към класа String, брои символите от нула и връща чисто нов String, без да променя оригинала.

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

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. Тази дължина се измерва по отношение на броя знаци. Функцията ще върне extracподниз, наречен „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, откъдето идва и бившиятtracцията започна там.

Освен изрязване от един индекс, методът Substring може да се насочи и към символи в средата на String.

Средни герои

Също така е възможно да получим средните знаци на въпросния низ. В този случай трябва да предоставим само началния индекс и дължината на низа, от който се нуждаем. В следващия пример получаваме подниз на посочения низ от индекс 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 инструктират функцията да започне extracция на подниз от индекс 2, докато вторият 2 инструктира функцията да върне подниз с дължина само от 2 символа. Това означава, че примерътtracИзвеждането на подниз трябва да започва от елемента, разположен на индекс 2 на низа. Guru99, което е r. Тъй като върнатият подниз трябва да има дължина само от 2 символа, extracцията няма да премине отвъд „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 е строг по отношение на стойностите, които му предавате. Когато даден аргумент излезе извън границите на String, 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

Валидирането на индекса преди извикването осигурява гладкото функциониране на приложението, дори когато входният низ не съдържа очаквания символ.

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

Често срещана задача е extracтиране на текста, който се появява преди или след определен символ, например разделяне на имейл адрес при знака @. 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 да се изпълнява до края на String:

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

Това връща example.com. Когато даден символ се появява повече от веднъж, използвайте LastIndexOf вместо IndexOf, за да започнете от последното срещане, вместо от първото.

Подниз срещу функции Left, Right и Mid

Visual Basic наследява три стари функции за низове от по-ранни версии: Left, Right и Mid. Те се намират в Microsoft.VisualBasic именното пространство може да изглежда по-познато на разработчиците, идващи от класическия VB.

  • Left(низ, n) връща първите n символа от низ.
  • Right(низ, n) връща последните n символа от низ.
  • Mid(низ, начало, дължина) връща част от начална позиция, подобно на Substring.

Ключовата разлика е как броят позициите. Функцията Mid е базирана на едно, така че първият символ е на позиция 1, докато методът Substring е базиран на нула и започва да брои от 0. Substring е стандартният .NET подход и се държи по един и същи начин във всеки .NET език, така че е препоръчителният избор за нов код. Запазете Left, Right и Mid за поддръжка на по-стари Visual Basic проекти.

Въпроси и Отговори

Да. Методът Substring е базиран на нула, така че първият символ на String е на индекс 0, вторият на индекс 1 и т.н. Броенето от нула е важно, когато изчислявате началната позиция.

Не. Низовете във VB.Net са непроменяеми, така че методът Substring никога не променя оригиналния низ. Той връща чисто нов низ, който съдържа extracted символи, докато изходният низ запазва първоначалната си стойност непроменена.

Подниз extracts една непрекъсната част от низ, използвайки индекс и дължина. разцепен Разделя String на масив от по-малки низове, където и да се появи разделител, като например запетая или интервал. Използвайте Split за списъци и Substring за срезове.

Предаването на дължина 0 връща празен низ („“), а не Nothing. Извикването е валидно и не поражда изключение, при условие че началният индекс все още попада в границите на низа.

Методът Substring запазва частта от низа, която посочвате, и изхвърля останалата част. Методът Remove прави обратното: той изтрива символите, започващи от даден индекс, и връща останалия низ. Те са допълващи се операции.

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

Да. Копилот на GitHub във Visual Studio 2026 превръща коментар на обикновен английски език, като например extracпреобразуването на текста преди запетая в работещо извикване на подниз с IndexOf. Винаги преглеждайте генерираните индекси, за да се уверите, че остават в рамките на диапазона.

Да. Visual Studio 2026 съчетава GitHub Copilot с intelliCode за да маркирате вероятни индекси извън диапазона, да предлагате правилни аргументи и да завършвате извикванията на поднизове, докато пишете, helping Предотвратявате ArgumentOutOfRangeException, преди да стартирате програмата.

Обобщете тази публикация с: