VB.NET-understrengsmetode med EKSEMPEL

โšก Smart opsummering

VB.Net delstreng extracBearbejder en del af en streng ved at angive et startindeks og en valgfri lรฆngde. Metoden tilhรธrer String-klassen, tรฆller tegn fra nul og returnerer en helt ny streng uden at รฆndre originalen.

  • ๐Ÿ”ข Nulbaseret indeks: Substring-metoden tรฆller tegn fra indeks 0, sรฅ det fรธrste bogstav i en streng sidder pรฅ position nul.
  • โ˜‘๏ธ To overbelastninger: Hvis man sender รฉt argument, returneres alt fra det pรฅgรฆldende indeks og fremefter, mens to argumenter returnerer et fast antal tegn.
  • โœ‚๏ธ Extract efter position: Kombiner Delstreng med IndeksOf eller SidsteIndexOf for at registrere teksten fรธr eller efter et bestemt tegn.
  • โš ๏ธ Sikker indeksering: Et negativt indeks eller et indeks uden for omrรฅdet kaster en ArgumentOutOfRangeException, sรฅ valider vรฆrdier, fรธr metoden kaldes.
  • ๐Ÿ”ค Uforanderligt resultat: Delstrengen returnerer en ny streng og lader kildestrengen vรฆre uรฆndret, hvilket matcher uforanderligheden af โ€‹โ€‹.NET-strenge.
  • ๐Ÿค– AI assistance: GitHub Copilot og IntelliCode I Visual Studio 2026 foreslรฅs korrekte delstrengskald og markeres indekser uden for omrรฅdet, mens du skriver.

VB.Net-understreng

Hvad er en delstreng?

Funktionen Substring bruges til at hente en del af en bestemt streng. Denne metode er defineret i String-klassen i Microsoft VB.NetDu skal angive startindekset, hvorfra strengen skal eks.tracted. Strengen vil vรฆre extracfra det indeks op til den lรฆngde, du angiver.

Fรธr ekstractekst, hjรฆlper det at forstรฅ den syntaks, som Substring-metoden forventer.

Syntaks for understreng

Funktionen accepterer to argumenter som vist i fรธlgende syntaks:

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

Her,

  • Nรธgleordet ByVal angiver pass-by-value, som er en mekanisme til at overfรธre argumenter til funktioner.
  • start_Index er det indeks, hvorfra delstrengen hentes.
  • sub_length angiver den lรฆngde, som strengen kopieres op til fra start_Index. Denne lรฆngde mรฅles i antal tegn. Funktionen returnerer ex.tracted delstreng.

Startindekset er nulbaseret, sรฅ det fรธrste tegn i strengen sidder pรฅ position 0 i stedet for position 1.

Med den definerede syntaks viser fรธlgende eksempler Substring-metoden i brug i en konsolapplikation.

Eksempler

Trin 1) Opret en ny konsolapplikation.

Trin 2) Tilfรธj fรธlgende kode:

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

Trin 3) Klik pรฅ Start-knappen i vรฆrktรธjslinjen for at udfรธre koden. Du bรธr fรฅ fรธlgende resultat:

Eksempel pรฅ output i VB.Net-substreng

Vi har brugt fรธlgende kode:

Eksempel pรฅ VB.Net-substringkode

Forklaring af Code:

  1. Oprettelse af et modul ved navn Modul1.
  2. Start af hovedunderproceduren.
  3. Definering af en strengvariabel med navnet st og tildeling af vรฆrdien Guru99 til det.
  4. Definering af en strengvariabel med navnet 'subst' som en delstreng af strengen 'st' fra indeks 0 og en lรฆngde pรฅ 4 tegn.
  5. Udskrivning af noget tekst og ovenstรฅende understreng pรฅ konsollen.
  6. Sรฆtter konsolvinduet pรฅ pause i et stykke tid og venter pรฅ, at brugeren foretager handling for at lukke det.
  7. Afslutning af hovedunderproceduren.
  8. Slut pรฅ modulet.

Et argument

Hvad hvis vi kun sender รฉt argument til funktionen? Funktionen kopierer alle data i strengen, der begynder fra det indeks. Det, der sker, er, at Substring-funktionen internt kopierer alle strengdata pรฅ det indeks sรฅvel som det, der fรธlger efter det indeks. For eksempel:

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

Klik pรฅ knappen Start for at kรธre koden. Det skal returnere fรธlgende:

VB.Net delstreng med รฉt argument

Funktionen Substring returnerede 99. Vi sendte parameter 4 til funktionen, hvilket betyder, at den vil begynde at extract delstrengen fra tegnet ved indeks 4 til slutningen af โ€‹โ€‹strengen. 9 er tegnet ved indeks 4 i strengen Guru99, deraf eks.tractionen startede der.

Udover at trimme fra et enkelt indeks kan Substring-metoden ogsรฅ mรฅlrette tegn midt i en streng.

Mellemste tegn

Det er ogsรฅ muligt for os at fรฅ de midterste tegn i den pรฅgรฆldende streng. I dette tilfรฆlde skal vi kun angive startindekset og lรฆngden af โ€‹โ€‹den streng, vi har brug for. I det fรธlgende eksempel fรฅr vi en understreng af den angivne streng fra indeks 2, og strengen vil have en lรฆngde pรฅ 2 tegn:

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

Klik pรฅ knappen Start pรฅ vรฆrktรธjslinjen for at kรธre koden. Du fรฅr fรธlgende resultat:

VB.Net Delstreng midterste tegn

I ovenstรฅende eksempel returnerede delstrengsfunktionen ru. Vi sendte parametrene (2, 2) til funktionen. De fรธrste 2 instruerer funktionen til at starte eksempelettraction af delstrengen fra indeks 2, mens den anden 2 instruerer funktionen til at returnere en delstreng med en lรฆngde pรฅ kun 2 tegn. Det betyder, at eks.tracDelstrengens udformning skal begynde fra elementet, der er placeret ved indeks 2 i strengen. Guru99, hvilket er r. Da den returnerede delstreng kun skal have en lรฆngde pรฅ 2 tegn, er f.eks.trac`tion` vil ikke gรฅ forbi 'u', derfor returnerede den 'ru'.

En Char

Vi kan bruge Substring-funktionen til at fรฅ et enkelt tegn fra en streng. I et sรฅdant tilfรฆlde er det en nรธdvendighed for dig at foretage en tildeling, men karakteren kan tilgรฅs direkte. Det her er lidt hurtigere. Fรธlgende eksempel viser to mรฅder, hvorpรฅ vi kan opnรฅ dette:

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

Klik pรฅ knappen Start for at kรธre koden. Du fรฅr fรธlgende resultat:

VB.Net Delstreng output med enkelt tegn

Vi har brugt fรธlgende kode:

VB.Net delstreng enkelttegnskode

Forklaring af Code:

  1. Oprettelse af et modul ved navn Modul1.
  2. Start af hovedunderproceduren.
  3. Definering af en strengvariabel med navnet st og tildeling af vรฆrdien Guru99 til det.
  4. Definere en strengvariabel ved navn mid1 og fรฅ tegnet ved indeks 1 af String st. Dette tegn vil blive tildelt variablen mid1.
  5. Udskrivning af ovenstรฅende tegn pรฅ konsollen.
  6. Definere en strengvariabel ved navn mid2 og fรฅ tegnet ved indeks 1 med en lรฆngde pรฅ 1 fra String st. Lรฆngden pรฅ 1 betyder, at det vil returnere det samme tegn ved startindekset. Optรฆllingen begynder fra det startindeks, som du angiver. Dette tegn vil blive tildelt variablen mid2.
  7. Udskrivning af ovenstรฅende tegn pรฅ konsollen.
  8. Sรฆtter konsolvinduet pรฅ pause i et stykke tid og venter pรฅ, at brugeren foretager handling for at lukke det.
  9. Afslutning af hovedunderproceduren.
  10. Slut pรฅ modulet.

Nรฅr du fรธrst er tryg ved eks.tracNรฅr man bruger delstrenge, er det vรฆrd at vide, hvordan man hรฅndterer de fejl, som metoden kan forรฅrsage.

Almindelige delstrengsfejl og hvordan man undgรฅr dem

Substring-metoden er streng omkring de vรฆrdier, du sender til den. Nรฅr et argument falder uden for strengens grรฆnser, kaster VB.Net en ArgumentOutOfRangeException og stopper programmet under kรธrsel. Forstรฅelse af reglerne hjรฆlper dig med at undgรฅ denne almindelige fejl.

Metoden giver anledning til undtagelsen i tre situationer:

  • start_Index er et negativt tal.
  • start_Index er stรธrre end lรฆngden af โ€‹โ€‹strengen.
  • Summen af โ€‹โ€‹start_Index og sub_length peger ud over slutningen af โ€‹โ€‹strengen.

En hyppig fejl er at bruge resultatet af IndexOf-funktionen uden fรธrst at kontrollere det. Nรฅr IndexOf ikke finder tegnet, returnerer den -1, og at sende -1 til Substring udlรธser undtagelsen. Fรธlgende kode beskytter mod dette:

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

Validering af indekset fรธr kaldet sikrer, at din applikation kรธrer problemfrit, selv nรฅr inputstrengen ikke indeholder det forventede tegn.

Hentning af en delstreng fรธr eller efter et tegn

En almindelig opgave er f.eks.tracat opdele teksten, der vises fรธr eller efter et bestemt tegn, f.eks. at opdele en e-mailadresse ved @-tegnet. VB.Net har ikke en dedikeret funktion til dette, men du kan kombinere IndexOf med Substring for at opnรฅ det.

Tekst fรธr et tegn: Kald IndexOf for at finde tegnet, og send derefter indekset som lรฆngden til 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

Koden udskriver guru99, den del af strengen der sidder fรธr @-tegnet.

Tekst efter et tegn: Tilfรธj 1 til indekset og lad delstrengen kรธre til slutningen af โ€‹โ€‹strengen:

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

Dette returnerer example.com. Nรฅr et tegn forekommer mere end รฉn gang, skal du bruge LastIndexOf i stedet for IndexOf for at starte fra den sidste forekomst i stedet for den fรธrste.

Delstreng vs. venstre-, hรธjre- og midterfunktioner

Visual Basic arver tre รฆldre strengfunktioner fra tidligere versioner: Venstre, Hรธjre og Midterste. De findes i Microsoft.VisualBasic-navneomrรฅdet og kan fรธles mere velkendt for udviklere, der kommer fra klassisk VB.

  • Venstre(streng, n) returnerer de fรธrste n tegn i en streng.
  • Hรธjre(streng, n) returnerer de sidste n tegn i en streng.
  • Midt(streng, start, lรฆngde) returnerer en del fra en startposition, ligesom Delstreng.

Den vigtigste forskel er, hvordan de tรฆller positioner. Mid-funktionen er รฉn-baseret, sรฅ det fรธrste tegn sidder pรฅ position 1, mens Substring-metoden er nulbaseret og begynder at tรฆlle ved 0. Substring er standard .NET-tilgangen og opfรธrer sig pรฅ samme mรฅde pรฅ tvรฆrs af alle .NET-sprog, sรฅ det er det anbefalede valg til ny kode. Reserver Left, Right og Mid til vedligeholdelse af รฆldre Visual Basic-projekter.

Ofte Stillede Spรธrgsmรฅl

Ja. Substring-metoden er nulbaseret, sรฅ det fรธrste tegn i strengen sidder ved indeks 0, det andet ved indeks 1 osv. Det er vigtigt at tรฆlle fra nul, nรฅr du beregner startpositionen.

Nej. Strenge i VB.Net er uforanderlige, sรฅ Substring-metoden รฆndrer aldrig den oprindelige streng. Den returnerer en helt ny streng, der indeholder eks.tractede tegn, mens kildestrengen bevarer sin oprindelige vรฆrdi uรฆndret.

Delstreng f.eks.tracts en kontinuerlig del af en streng ved hjรฆlp af et indeks og en lรฆngde. Dele opdeler en streng i et array af mindre strenge, hvor der vises en afgrรฆnser, f.eks. et komma eller et mellemrum. Brug Opdel til lister og Delstreng til udsnit.

Hvis lรฆngden 0 angives, returneres en tom streng (โ€œโ€), ikke ingenting. Kaldet er gyldigt og forรฅrsager ikke en undtagelse, forudsat at startindekset stadig falder inden for strengens grรฆnser.

Delstrengen beholder den del af strengen, du angiver, og kasserer resten. Fjern-metoden gรธr det modsatte: den sletter tegnene, der starter ved et givet indeks, og returnerer den streng, der er tilbage. De er komplementรฆre operationer.

Ja. Mellemrum, tabulatorer og tegnsรฆtning tรฆller hver isรฆr som รฉt tegn, nรฅr Substring-metoden beregner startindekset og -lรฆngden. Hver position i strengen, inklusive mellemrum, er en del af antallet, ikke kun de synlige bogstaver.

Ja. GitHub Copilot i Visual Studio 2026 รฆndrer en kommentar pรฅ almindeligt engelsk, sรฅsom extracat indsรฆtte teksten fรธr et komma i et fungerende Substring-kald med IndexOf. Gennemgรฅ altid de genererede indeks for at bekrรฆfte, at de holder sig inden for omrรฅdet.

Ja. Visual Studio 2026 parrer GitHub Copilot med IntelliCode at markere sandsynlige indekser uden for rรฆkkevidde, foreslรฅ korrekte argumenter og fuldfรธre delstrengskald, mens du skriver, helping Du forhindrer en ArgumentOutOfRangeException, fรธr du kรธrer programmet.

Opsummer dette indlรฆg med: