Metoda podřetězců VB.NET s PŘÍKLADEM

⚡ Chytré shrnutí

Podřetězec VB.Net extracVrací část řetězce (String) zadáním počátečního indexu a volitelné délky. Metoda patří do třídy String, počítá znaky od nuly a vrací zcela nový řetězec bez změny originálu.

  • 🔢 Index založený na nule: Metoda Substring počítá znaky od indexu 0, takže první písmeno řetězce String se nachází na pozici nula.
  • ☑️ Dvě přetížení: Předání jednoho argumentu vrátí vše od daného indexu dále, zatímco dva argumenty vrátí pevný počet znaků.
  • ✂️ Extract podle pozice: Zkombinujte Substring s IndexOf nebo LastIndexOf pro zachycení textu před nebo za určitým znakem.
  • ⚠️ Bezpečné indexování: Záporný index nebo index mimo rozsah vyvolá výjimku ArgumentOutOfRangeException, proto před voláním metody ověřte hodnoty.
  • 🔤 Neměnný výsledek: Funkce Substring vrací nový řetězec a ponechává zdrojový řetězec beze změny, což odpovídá neměnnosti řetězců .NET.
  • 🤖 Asistence AI: GitHub Copilot a IntelliCode Ve Visual Studiu 2026 navrhovat správná volání podřetězců a označovat indexy mimo rozsah při psaní.

Podřetězec VB.Net

Co je to podřetězec?

Funkce Substring se používá k získání části zadaného řetězce. Tato metoda je definována ve třídě String třídy Microsoft VB.NetMusíte zadat počáteční index, od kterého bude řetězec exprimován.tracted. Řetězec bude extracz daného indexu až do vámi zadané délky.

Před extracPři zpracování textu je užitečné porozumět syntaxi, kterou metoda Substring očekává.

Syntaxe podřetězce

Funkce přijímá dva argumenty, jak je znázorněno v následující syntaxi:

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

Zde,

  • Klíčové slovo ByVal označuje pass-by-value, což je mechanismus předávání argumentů funkcím.
  • Počáteční_index je index, ze kterého bude podřetězec získán.
  • sub_length označuje délku, do které bude řetězec kopírován z indexu start_Index. Tato délka se měří počtem znaků. Funkce vrátí extracpodřetězec ted.

Počáteční index je založen na nule, takže první znak řetězce se nachází na pozici 0, nikoli na pozici 1.

S definovanou syntaxí ukazují následující příklady metodu Substring v praxi v konzolové aplikaci.

Příklady

Krok 1) Vytvořte novou konzolovou aplikaci.

Krok 2) Přidejte k němu následující kód:

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

Krok 3) Klikněte na tlačítko Start na panelu nástrojů pro spuštění kódu. Měli byste získat následující výsledek:

Příklad výstupu podřetězce VB.Net

Použili jsme následující kód:

Příklad kódu podřetězce VB.Net

Vysvětlení Code:

  1. Vytvoření modulu s názvem Module1.
  2. Spuštění hlavního dílčího postupu.
  3. Definování řetězcové proměnné s názvem st a přiřazení hodnoty Guru99 k tomu.
  4. Definování řetězcové proměnné s názvem 'subst' jako podřetězce řetězce 'st' z indexu 0 a délky 4 znaků.
  5. Tisk nějakého textu a výše uvedeného podřetězce na konzole.
  6. Pozastavení okna konzoly na chvíli a čekání na to, až uživatel provede akci k jeho zavření.
  7. Konec hlavního dílčího postupu.
  8. Konec modulu.

Jeden argument

Co když funkci předáme pouze jeden argument? Funkce zkopíruje všechna data v řetězci, který začíná tímto indexem. Co se stane, je, že funkce Substring interně zkopíruje všechna data řetězce v tomto indexu a také data, která následují po tomto indexu. Například:

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

Kliknutím na tlačítko Start spusťte kód. Mělo by vrátit následující:

Podřetězec VB.Net s jedním argumentem

Funkce Substring vrátila hodnotu 99. Funkci jsme předali parametr 4, což znamená, že začne extract podřetězec od znaku na indexu 4 do konce řetězce. 9 je znak na indexu 4 řetězce. Guru99, proto extractam to začalo.

Kromě ořezávání z jednoho indexu může metoda Substring cílit také na znaky uprostřed řetězce String.

Střední postavy

Je také možné, abychom získali střední znaky příslušného řetězce. V tomto případě musíme poskytnout pouze počáteční index a délku řetězce, kterou potřebujeme. V následujícím příkladu získáváme podřetězec zadaného řetězce z indexu 2 a řetězec bude mít délku 2 znaků:

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

Kliknutím na tlačítko Start na panelu nástrojů spusťte kód. Získáte následující výsledek:

Prostřední znaky podřetězce VB.Net

Ve výše uvedeném příkladu vrátila funkce Substring hodnotu ru. Funkci jsme předali parametry (2, 2). První 2 instruují funkci, aby začala s ex.tracpodřetězce z indexu 2, zatímco druhý index 2 instruuje funkci, aby vrátila podřetězec o délce pouze 2 znaky. To znamená, že extracČíslo podřetězce by mělo začínat od prvku umístěného na indexu 2 řetězce. Guru99, což je r. Protože vrácený podřetězec by měl mít délku pouze 2 znaky, extracFunkce nepřekročí hranici 'u', proto vrátila 'ru'.

Jeden Char

K získání jednoho znaku z řetězce můžeme použít funkci Substring. V takovém případě je nutné, abyste provedli alokaci, ale postava je přístupná přímo. Tohle je o něco rychlejší. Následující příklad ukazuje dva způsoby, jak toho můžeme dosáhnout:

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

Kliknutím na tlačítko Start spusťte kód. Získáte následující výsledek:

Výstup jednoho znaku podřetězce VB.Net

Použili jsme následující kód:

Jednoznakový kód podřetězce VB.Net

Vysvětlení Code:

  1. Vytvoření modulu s názvem Module1.
  2. Spuštění hlavního dílčího postupu.
  3. Definování řetězcové proměnné s názvem st a přiřazení hodnoty Guru99 k tomu.
  4. Definování řetězcové proměnné s názvem mid1 a získání znaku na indexu 1 řetězce String st. Tento znak bude přiřazen k proměnné mid1.
  5. Tisk výše uvedeného znaku na konzole.
  6. Definování řetězcové proměnné s názvem mid2 a získání znaku na indexu 1 o délce 1 z String st. Délka 1 znamená, že vrátí stejný znak na počátečním indexu. Počítání začíná od počátečního indexu, který určíte. Tento znak bude přiřazen k proměnné mid2.
  7. Tisk výše uvedeného znaku na konzole.
  8. Pozastavení okna konzoly na chvíli a čekání na to, až uživatel provede akci k jeho zavření.
  9. Konec hlavního dílčího postupu.
  10. Konec modulu.

Jakmile se uklidníš, bývalý/bývalátracPři práci s podřetězci je vhodné vědět, jak zpracovat chyby, které může metoda vyvolat.

Časté chyby podřetězců a jak se jim vyhnout

Metoda Substring je striktní ohledně hodnot, které jí předáváte. Když argument překročí hranice řetězce (String), VB.Net vyvolá výjimku ArgumentOutOfRangeException a zastaví program za běhu. Pochopení pravidel vám pomůže vyhnout se této běžné chybě.

Metoda vyvolá výjimku ve třech situacích:

  • Počáteční_index je záporné číslo.
  • Počáteční index je větší než délka řetězce.
  • Součet bodů start_Index a sub_length za koncem řetězce.

Častou chybou je použití výsledku funkce IndexOf bez jeho předchozí kontroly. Pokud IndexOf nenajde znak, vrátí -1 a předání -1 funkci Substring spustí výjimku. Následující kód se tomu chrání:

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

Ověření indexu před voláním zajišťuje hladký chod aplikace, a to i v případě, že vstupní řetězec neobsahuje očekávaný znak.

Získání podřetězce před nebo za znakem

Běžným úkolem je např.tracrozdělení textu, který se objeví před nebo za určitým znakem, například rozdělení e-mailové adresy u znaku @. VB.Net pro tento účel neposkytuje samostatnou funkci, ale můžete toho dosáhnout kombinací IndexOf s Substring.

Text před znakem: Zavolejte IndexOf pro nalezení znaku a poté tento index předejte jako délku Substringu:

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

Kód vypíše guru99, část řetězce, která se nachází před znakem @.

Text za znakem: přidejte 1 do indexu a nechte Substring běžet až do konce řetězce:

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

Vrátí se example.com. Pokud se znak objeví vícekrát, použijte LastIndexOf místo IndexOf, aby se začalo od posledního výskytu namísto prvního.

Funkce podřetězec vs. Left, Right a Mid

Visual Basic zdědil tři starší řetězcové funkce z dřívějších verzí: Left, Right a Mid. Ty se nacházejí v MicrosoftJmenný prostor .VisualBasic a může být vývojářům přecházejícím z klasického VB povědomější.

  • Left(řetězec, n) vrací prvních n znaků řetězce.
  • Vpravo(řetězec, n) vrací posledních n znaků řetězce.
  • Střed(řetězec, začátek, délka) vrací část z počáteční pozice, podobně jako Substring.

Klíčový rozdíl je v tom, jak počítají pozice. Funkce Mid je založena na jedničce, takže první znak se nachází na pozici 1, zatímco metoda Substring je založena na nule a začíná počítat od 0. Substring je standardní přístup .NET a chová se stejně ve všech jazycích .NET, takže je doporučenou volbou pro nový kód. Funkce Left, Right a Mid si rezervujte pro údržbu starších projektů Visual Basic.

Nejčastější dotazy

Ano. Metoda Substring je založena na nule, takže první znak řetězce se nachází na indexu 0, druhý na indexu 1 atd. Počítání od nuly je důležité při výpočtu počáteční pozice.

Ne. Řetězce ve VB.Net jsou neměnné, takže metoda Substring nikdy nezmění původní řetězec. Vrací zcela nový řetězec, který obsahuje extracznaky, zatímco zdrojový řetězec si ponechává svou původní hodnotu beze změny.

Podřetězec extracts jednu souvislou část řetězce s použitím indexu a délky. Rozdělit Rozdělí řetězec (String) na pole menších řetězců všude, kde se objeví oddělovač, například čárka nebo mezera. Pro seznamy použijte příkaz Split a pro řezy Substring.

Předání délky 0 vrátí prázdný řetězec („“), nikoli Nothing. Volání je platné a nevyvolá výjimku, za předpokladu, že počáteční index stále spadá do mezí řetězce.

Metoda Substring si ponechá zadanou část řetězce a zbytek zahodí. Metoda Remove dělá opak: smaže znaky počínaje daným indexem a vrátí zbývající řetězec. Jsou to doplňkové operace.

Ano. Mezery, tabulátory a interpunkce se počítají jako jeden znak, když metoda Substring vypočítává počáteční index a délku. Každá pozice v řetězci, včetně mezer, je součástí počtu, nejen viditelná písmena.

Ano. GitHub Copilot ve Visual Studiu 2026 převede komentář v prostém anglickém jazyce, například extracpřevedením textu před čárkou do funkčního volání podřetězce pomocí IndexOf. Vždy zkontrolujte vygenerované indexy, abyste se ujistili, že zůstávají v rozsahu.

Ano. Visual Studio 2026 spojuje GitHub Copilot s intelliCode pro označení indexů, které jsou pravděpodobně mimo rozsah, navrhování správných argumentů a dokončování volání podřetězců během psaní, helping Před spuštěním programu zabráníte výjimce ArgumentOutOfRangeException.

Shrňte tento příspěvek takto: