VB.NET-i alamstringi meetod koos NÄIDEGA

⚡ Nutikas kokkuvõte

VB.Neti alamstringi näidetracTagastab stringi osa, määrates algusindeksi ja valikulise pikkuse. Meetod kuulub stringiklassi, loendab märke nullist ja tagastab uue stringi ilma algset muutmata.

  • 🔢 Nullpõhine indeks: Substringi meetod loendab märke alates indeksist 0, seega stringi esimene täht asub nullpositsioonil.
  • ☑️ Kaks ülekoormust: Ühe argumendi edastamine tagastab kõik alates sellest indeksist, kaks argumenti aga fikseeritud arvu märke.
  • ✂️ Extract positsiooni järgi: Kombineeri Substring funktsiooniga IndexOf või LastIndexOf, et jäädvustada tekst enne või pärast kindlat märki.
  • ⚠️ Ohutu indekseerimine: Negatiivne või vahemikust väljas olev indeks tekitab ArgumentOutOfRangeException'i, seega kontrollige väärtusi enne meetodi kutsumist.
  • 🔤 Muutumatu tulemus: Substring tagastab uue stringi ja jätab lähteteksti muutmata, mis vastab .NET-stringide muutmatusele.
  • 🤖 AI abi: GitHub Copilot ja IntelliCode Visual Studio 2026-s soovitab see õigeid Substringi kutseid ja märgistab kirjutamise ajal vahemikust väljas olevad indeksid.

VB.Neti alamstring

Mis on alamstring?

Funktsiooni Substring kasutatakse määratud stringi osa saamiseks. See meetod on defineeritud meetodi String klassis. Microsoft VB.NetSa pead määrama algusindeksi, millest alates stringi hakatakse ex-i looma.tracted. Keel on endinetracsellest indeksist kuni teie määratud pikkuseni.

Enne endisttracTeksti sisestamisel on kasulik mõista süntaksit, mida Substringi meetod ootab.

Alamstringi süntaks

Funktsioon aktsepteerib kahte argumenti, nagu on näidatud järgmises süntaksis:

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

Siin

  • Märksõna ByVal tähistab möödumisväärtust, mis on funktsioonidele argumentide edastamise mehhanism.
  • Start_Index on indeks, millest alamstring hangitakse.
  • sub_length tähistab pikkust, milleni stringi kopeeritakse indeksist start_Index. Seda pikkust mõõdetakse märkide arvuga. Funktsioon tagastab näidisetracted alamstring.

Algusindeks on nullpõhine, seega stringi esimene märk asub positsioonil 0, mitte positsioonil 1.

Kui süntaks on defineeritud, demonstreerivad järgmised näited Substringi meetodit konsoolirakenduses.

Näited

1. samm) Looge uus konsoolirakendus.

2. samm) Lisage sellele järgmine kood:

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. samm) Koodi käivitamiseks klõpsake tööriistaribal nuppu Start. Peaksite saama järgmise tulemuse:

VB.Neti alamstringi näidisväljund

Oleme kasutanud järgmist koodi:

VB.Neti alamstringi koodi näide

Selgitus Code:

  1. Mooduli Module1 loomine.
  2. Peamise alamprotseduuri alustamine.
  3. Stringmuutuja nimega st defineerimine ja väärtuse määramine Guru99 sellele.
  4. Stringimuutuja nimega 'subst' defineerimine stringi 'st' alamstringina indeksist 0 ja pikkusega 4 tähemärki.
  5. Teatud teksti ja ülaltoodud alamstringi trükkimine konsoolile.
  6. Konsooliakna peatamine mõneks ajaks, oodates, kuni kasutaja selle sulgemiseks midagi ette võtab.
  7. Peamise alamprotseduuri lõpp.
  8. Mooduli lõpp.

Üks argument

Mis siis, kui anname funktsioonile ainult ühe argumendi? Funktsioon kopeerib kõik andmed stringis, mis algab sellest indeksist. Mis juhtub, on see, et funktsioon Substring kopeerib sisemiselt kõik selle indeksi stringiandmed ja ka sellele indeksile järgnevad andmed. Näiteks:

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

Koodi käivitamiseks klõpsake nuppu Start. See peaks tagastama järgmise:

VB.Net alamstring ühe argumendiga

Funktsioon Substring tagastas väärtuse 99. Andsime funktsioonile parameetri 4, mis tähendab, et see hakkab avaldumatract alamsõnge indeksiga 4 tähistatud tähemärgist stringi lõpuni. 9 on stringi indeksiga 4 tähistatud tähemärk Guru99, seega ekstractsioon sai seal alguse.

Lisaks ühest indeksist kärpimisele saab Substringi meetodi abil sihtida ka stringi keskel asuvaid märke.

Keskmised tegelased

Samuti on meil võimalik saada kõnealuse stringi keskmised märgid. Sel juhul peame esitama ainult vajaliku stringi algusindeksi ja pikkuse. Järgmises näites saame määratud stringi alamstringi indeksist 2 ja stringi pikkus on 2 tähemärki:

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

Koodi käivitamiseks klõpsake tööriistaribal nuppu Start. Saate järgmise tulemuse:

VB.Neti alamstringi keskmised tähemärgid

Ülaltoodud näites tagastas funktsioon Substring väärtuse ru. Andsime funktsioonile edasi parameetrid (2, 2). Esimesed 2 annavad funktsioonile käsu alustada eksemplari.tracindeksi 2 alamsõne väljund, samas kui teine ​​2 annab funktsioonile korralduse tagastada ainult 2 tähemärgi pikkune alamsõne. See tähendab, ettracAlamstringi loomine peaks algama stringi indeksil 2 asuvast elemendist Guru99, mis on r. Kuna tagastatud alamstringi pikkus peaks olema ainult 2 tähemärki, siis extracei lähe 'u'-st kaugemale, seega tagastati 'ru'.

Üks täht

Funktsiooni Substring saame kasutada stringist ühe märgi saamiseks. Sellisel juhul peate tegema jaotuse, kuid tegelasele pääseb otse juurde. See on natuke kiirem. Järgmine näide näitab kahte võimalust, kuidas seda saavutada.

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

Koodi käivitamiseks klõpsake nuppu Start. Saate järgmise tulemuse:

VB.Neti alamstringi ühe tähemärgi väljund

Oleme kasutanud järgmist koodi:

VB.Neti alamstringi ühe tähemärgi kood

Selgitus Code:

  1. Mooduli Module1 loomine.
  2. Peamise alamprotseduuri alustamine.
  3. Stringmuutuja nimega st defineerimine ja väärtuse määramine Guru99 sellele.
  4. Stringi muutuja mid1 määratlemine ja märgi hankimine String st indeksi 1. juures. See märk määratakse muutujale mid1.
  5. Ülaltoodud märgi trükkimine konsoolile.
  6. Stringi muutuja nimega mid2 määratlemine ja indeksi 1 tähemärgi saamine pikkusega 1 stringist String st. Pikkus 1 tähendab, et see tagastab sama märgi algusindeksis. Loendamine algab teie määratud algusindeksist. See märk määratakse muutujale mid2.
  7. Ülaltoodud märgi trükkimine konsoolile.
  8. Konsooliakna peatamine mõneks ajaks, oodates, kuni kasutaja selle sulgemiseks midagi ette võtab.
  9. Peamise alamprotseduuri lõpp.
  10. Mooduli lõpp.

Kui oled end endisega mugavalt tundnudtracAlamstringide analüüsimisel tasub teada, kuidas käsitleda vigu, mida meetod võib tekitada.

Levinumad alamstringi vead ja kuidas neid vältida

Substringi meetod on edastatavate väärtuste suhtes range. Kui argument jääb stringi piiridest väljapoole, viskab VB.Net ArgumentOutOfRangeExceptioni ja peatab programmi käitusajal. Reeglite mõistmine aitab teil seda levinud viga vältida.

Meetod tekitab erandi kolmel juhul:

  • Start_Index on negatiivne arv.
  • Start_Index on suurem kui stringi pikkus.
  • Stringi lõpust kaugemal asuvate start_Indexi ja sub_length punktide summa.

Sagedane viga on funktsiooni IndexOf tulemuse kasutamine ilma seda eelnevalt kontrollimata. Kui IndexOf ei leia märki, tagastab see -1 ja funktsioonile Substring -1 edastamine käivitab erandi. Järgmine kood kaitseb selle eest:

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

Indeksi valideerimine enne kutset tagab rakenduse sujuva töö isegi siis, kui sisendstring ei sisalda oodatud märki.

Alamstringi saamine enne või pärast märki

Levinud ülesanne on nttrackindla märgi ees või järel kuvatava teksti muutmine, näiteks e-posti aadressi jagamine @-märgi juures. VB.Net ei paku selleks spetsiaalset funktsiooni, kuid selle saavutamiseks saab IndexOf'i kombineerida Substringiga.

Tekst enne märki: Tähemärgi leidmiseks kutsu IndexOf välja ja seejärel edasta see indeks pikkusena funktsioonile 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

Kood prindib guru99, mis on stringi osa, mis asub enne @-märki.

Tekst pärast märki: lisa indeksile 1 ja lase Substringil joosta stringi lõpuni:

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

See tagastab example.com. Kui märk esineb mitu korda, kasutage IndexOf asemel LastIndexOf, et alustada viimasest esinemisest esimese asemel.

Substring vs. Left, Right ja Mid funktsioonid

Visual Basic pärib varasematest versioonidest kolm pärandstringifunktsiooni: Left, Right ja Mid. Need asuvad Microsoft.VisualBasic nimeruum ja võib tunduda tuttavam arendajatele, kes on tulnud klassikalisest VB-st.

  • Vasak(string, n) tagastab stringi esimesed n tähemärki.
  • Parem(string, n) tagastab stringi viimased n tähemärki.
  • Mid(string, algus, pikkus) tagastab osa alguspunktist, sarnaselt funktsiooniga Substring.

Peamine erinevus seisneb positsioonide loendamises. Funktsioon Mid on ühepõhine, seega asub esimene märk positsioonil 1, samas kui meetod Substring on nullpõhine ja alustab lugemist nullist. Substring on standardne .NET-i lähenemisviis ja käitub ühtemoodi kõigis .NET-keeltes, seega on see uue koodi jaoks soovitatav valik. Reserveerige funktsioonid Left, Right ja Mid vanemate Visual Basicu projektide säilitamiseks.

KKK

Jah. Substringi meetod on nullpõhine, seega stringi esimene märk asub indeksis 0, teine ​​indeksis 1 jne. Alguspositsiooni arvutamisel on oluline nullist lugeda.

Ei. VB.Neti stringid on muutmatud, seega Substringi meetod ei muuda kunagi algset stringi. See tagastab täiesti uue stringi, mis sisaldab extracted tähemärke, samas kui lähtetekst jätab oma algse väärtuse muutmata.

Alamstringi näidetracMärgistab stringi ühe pideva osa indeksi ja pikkuse abil. lõhe Jaotab stringi (String) väiksemateks stringide massiiviks kõikjal, kus esineb eraldaja, näiteks koma või tühik. Loendite jaoks kasutage funktsiooni Split (Jaga) ja viilude jaoks funktsiooni Substring (Substring).

Pikkuse 0 edastamine tagastab tühja stringi (""), mitte mitte midagi. Kutse on kehtiv ja ei tekita erandit, eeldusel, et algusindeks jääb endiselt stringi piiridesse.

Substring säilitab määratud stringi osa ja loobub ülejäänust. Remove-meetod teeb vastupidist: see kustutab antud indeksist alates olevad märgid ja tagastab järelejäänud stringi. Need on teineteist täiendavad toimingud.

Jah. Tühikud, tabulaatorid ja kirjavahemärgid loetakse Substringi meetodi algindeksi ja pikkuse arvutamisel üheks märgiks. Loendusse arvestatakse iga stringi positsioon, sealhulgas tühikud, mitte ainult nähtavad tähed.

Jah. GitHubi koopia Visual Studio 2026-s muudab lihtsa inglise keele kommentaari, näiteks nttrackoma ees oleva teksti lisamine toimivaks Substring-käsuks IndexOf abil. Kontrollige alati genereeritud indekseid, et need jääksid vahemikku.

Jah. Visual Studio 2026 ühendab GitHub Copiloti InteliCode tõenäoliselt vahemikust väljas olevate indeksite märgistamiseks, õigete argumentide soovitamiseks ja Substringi kutsete lõpuleviimiseks tippimise ajal, helping Enne programmi käivitamist väldite ArgumentOutOfRangeExceptioni.

Võta see postitus kokku järgmiselt: