VB.NET-delsträngsmetod med EXEMPEL

⚡ Smart sammanfattning

VB.Net Delsträng extracBearbetar en del av en sträng genom att ange ett startindex och en valfri längd. Metoden tillhör klassen String, räknar tecken från noll och returnerar en helt ny sträng utan att ändra originalet.

  • 🔢 Nollbaserat index: Substring-metoden räknar tecken från index 0, så den första bokstaven i en sträng sitter på position noll.
  • ☑️ Två överbelastningar: Att skicka ett argument returnerar allt från det indexet och framåt, medan två argument returnerar ett fast antal tecken.
  • ✂️ Extract efter position: Kombinera delsträng med IndexOf eller LastIndexOf för att fånga texten före eller efter ett specifikt tecken.
  • ⚠️ Säker indexering: Ett negativt index eller index utanför intervallet utlöser ett ArgumentOutOfRangeException, så validera värden innan metoden anropas.
  • 🔤 Oföränderligt resultat: Delsträng returnerar en ny sträng och lämnar källsträngen oförändrad, vilket matchar oföränderligheten hos .NET-strängar.
  • 🤖 AI-hjälp: GitHub Copilot och IntelliCode i Visual Studio 2026 föreslå korrekta delsträngsanrop och flagga index utanför intervallet medan du skriver.

VB.Net-delsträng

Vad är en delsträng?

Funktionen Substring används för att hämta en del av en specificerad sträng. Denna metod definieras i String-klassen för Microsoft VB.NetDu måste ange startindexet från vilket strängen ska existera.tracted. Strängen kommer att vara extracfrån det indexet upp till den längd du anger.

Före extractext, det hjälper att förstå syntaxen som Substring-metoden förväntar sig.

Syntax för delsträng

Funktionen accepterar två argument som visas i följande syntax:

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

Här,

  • Nyckelordet ByVal anger pass-by-value, vilket är en mekanism för att skicka argument till funktioner.
  • start_Index är det index från vilket delsträngen kommer att hämtas.
  • sub_length anger längden upp till vilken strängen kommer att kopieras från start_Index. Denna längd mäts i antal tecken. Funktionen returnerar extracted delsträng.

Startindexet är nollbaserat, så det första tecknet i strängen sitter på position 0 snarare än position 1.

Med syntaxen definierad visar följande exempel Substring-metoden i arbete i en konsolapplikation.

Exempel

Steg 1) Skapa en ny konsolapplikation.

Steg 2) Lägg till följande kod:

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

Steg 3) Klicka på Start-knappen i verktygsfältet för att köra koden. Du bör få följande resultat:

Exempel på utdata för VB.Net-delsträng

Vi har använt följande kod:

Exempel på VB.Net-substrängkod

Förklaring till Code:

  1. Skapa en modul som heter Module1.
  2. Startar huvuddelproceduren.
  3. Definiera en strängvariabel med namnet st och tilldela värdet Guru99 till det.
  4. Definiera en strängvariabel med namnet 'subst' som en delsträng av strängen 'st' från index 0 och en längd på 4 tecken.
  5. Skriver ut lite text och ovanstående delsträng på konsolen.
  6. Pausar konsolfönstret en stund i väntan på att användaren ska vidta åtgärder för att stänga det.
  7. Slut på det huvudsakliga underförfarandet.
  8. Slutet på modulen.

Ett argument

Vad händer om vi bara skickar ett argument till funktionen? Funktionen kopierar all data i strängen som börjar från det indexet. Det som händer är att Substring-funktionen internt kopierar all strängdata vid det indexet såväl som det som följer på det indexet. Till exempel:

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

Klicka på Start-knappen för att köra koden. Det bör returnera följande:

VB.Net-delsträng med ett argument

Funktionen Delsträng returnerade 99. Vi skickade parameter 4 till funktionen, vilket innebär att den kommer att börja ex.tracdelsträngen från tecknet vid index 4 till slutet av strängen. 9 är tecknet vid index 4 i strängen. Guru99, därav före dettatractionen började där.

Förutom att trimma från ett enda index kan Substring-metoden även rikta in sig på tecken mitt i en sträng.

Mellersta tecken

Det är också möjligt för oss att få mittenkaraktärerna i den aktuella strängen. I det här fallet behöver vi bara ange startindexet och längden på strängen som vi behöver. I följande exempel får vi en delsträng av den angivna strängen från index 2 och strängen kommer att ha en längd på 2 tecken:

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

Klicka på Start-knappen i verktygsfältet för att köra koden. Du får följande resultat:

VB.Net Delsträng Mellantecken

I exemplet ovan returnerade delsträngsfunktionen ru. Vi skickade parametrarna (2, 2) till funktionen. De första 2 instruerar funktionen att börja extraction av delsträngen från index 2 medan den andra 2 instruerar funktionen att returnera en delsträng med en längd på endast 2 tecken. Detta innebär att extracdelsträngens tion bör börja från elementet som finns vid index 2 i strängen Guru99, vilket är r. Eftersom den returnerade delsträngen bara ska ha en längd på 2 tecken, är t.ex.tractionen kommer inte att gå förbi 'u', därför returnerade den 'ru'.

En Röding

Vi kan använda Substring-funktionen för att få ett enstaka tecken från en sträng. I ett sådant fall är det en nödvändighet för dig att göra en tilldelning men karaktären kan nås direkt. Det här är lite snabbare. Följande exempel visar två sätt genom vilka vi kan uppnå detta:

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

Klicka på Start-knappen för att köra koden. Du får följande resultat:

VB.Net Delsträng utdata för ett enda tecken

Vi har använt följande kod:

VB.Net Delsträng enteckenskod

Förklaring till Code:

  1. Skapa en modul som heter Module1.
  2. Startar huvuddelproceduren.
  3. Definiera en strängvariabel med namnet st och tilldela värdet Guru99 till det.
  4. Definiera en strängvariabel med namnet mid1 och hämta tecknet vid index 1 av String st. Detta tecken kommer att tilldelas variabeln mid1.
  5. Skriver ut ovanstående tecken på konsolen.
  6. Definiera en strängvariabel med namnet mid2 och hämta tecknet vid index 1 med längden 1 från String st. Längden på 1 betyder att den kommer att returnera samma tecken vid startindexet. Räkningen börjar från startindexet som du anger. Detta tecken kommer att tilldelas variabeln mid2.
  7. Skriver ut ovanstående tecken på konsolen.
  8. Pausar konsolfönstret en stund i väntan på att användaren ska vidta åtgärder för att stänga det.
  9. Slut på det huvudsakliga underförfarandet.
  10. Slutet på modulen.

När du väl känner dig bekväm extracNär det gäller delsträngar är det värt att veta hur man hanterar de fel som metoden kan orsaka.

Vanliga delsträngsfel och hur man undviker dem

Substring-metoden är strikt när det gäller de värden du skickar till den. När ett argument faller utanför strängens gränser, kastar VB.Net ett ArgumentOutOfRangeException och stoppar programmet vid körning. Att förstå reglerna hjälper dig att undvika detta vanliga misstag.

Metoden gör undantaget i tre situationer:

  • start_Index är ett negativt tal.
  • start_Index är större än strängens längd.
  • Summan av start_Index och sub_length pekar bortom slutet av strängen.

Ett vanligt misstag är att använda resultatet av IndexOf-funktionen utan att först kontrollera det. När IndexOf inte hittar tecknet returnerar den -1, och att skicka -1 till Substring utlöser undantaget. Följande kod skyddar mot detta:

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

Att validera indexet före anropet gör att programmet körs smidigt, även om inmatningssträngen inte innehåller det tecken du förväntar dig.

Hämta en delsträng före eller efter ett tecken

En vanlig uppgift är t.ex.tracdela texten som visas före eller efter ett specifikt tecken, till exempel att dela en e-postadress vid @-tecknet. VB.Net tillhandahåller ingen dedikerad funktion för detta, men du kan kombinera IndexOf med Substring för att uppnå det.

Text före ett tecken: Anropa IndexOf för att hitta tecknet och skicka sedan det indexet som längd till 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 skriver ut guru99, den del av strängen som sitter före @-tecknet.

Text efter ett tecken: Lägg till 1 till indexet och låt delsträngen köras till slutet av strängen:

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

Detta returnerar example.com. När ett tecken förekommer mer än en gång, använd LastIndexOf istället för IndexOf för att börja från den sista förekomsten istället för den första.

Delsträng kontra vänster-, höger- och mittfunktioner

Visual Basic ärver tre äldre strängfunktioner från tidigare versioner: Left, Right och Mid. De finns i Microsoft.VisualBasic-namnrymden och kan kännas mer bekant för utvecklare som kommer från klassisk VB.

  • Vänster(sträng, n) returnerar de första n tecknen i en sträng.
  • Höger(sträng, n) returnerar de sista n tecknen i en sträng.
  • Mitten (sträng, start, längd) returnerar en del från en startposition, ungefär som Delsträng.

Den viktigaste skillnaden är hur de räknar positioner. Mid-funktionen är ett-baserad, så det första tecknet sitter på position 1, medan Substring-metoden är nollbaserad och börjar räkna vid 0. Substring är standardmetoden i .NET och beter sig på samma sätt i alla .NET-språk, så det är det rekommenderade valet för ny kod. Reservera Left, Right och Mid för att underhålla äldre Visual Basic-projekt.

Vanliga frågor

Ja. Substring-metoden är nollbaserad, så det första tecknet i strängen finns vid index 0, det andra vid index 1, och så vidare. Att räkna från noll är viktigt när du beräknar startpositionen.

Nej. Strängar i VB.Net är oföränderliga, så Substring-metoden ändrar aldrig den ursprungliga strängen. Den returnerar en helt ny sträng som innehåller exet.tractecken, medan källsträngen behåller sitt ursprungliga värde oförändrat.

Delsträng extracts en kontinuerlig del av en sträng med hjälp av ett index och en längd. Split delar upp en sträng i en array av mindre strängar där en avgränsare, såsom ett komma eller mellanslag, visas. Använd Dela för listor och Delsträng för sektorer.

Om längden 0 skickas returneras en tom sträng (“”), inte Nothing. Anropet är giltigt och genererar inget undantag, förutsatt att startindexet fortfarande faller inom strängens gränser.

Delsträngen behåller den del av strängen du anger och tar bort resten. Metoden Remove gör motsatsen: den tar bort tecknen som börjar vid ett givet index och returnerar den sträng som finns kvar. De är komplementära operationer.

Ja. Mellanslag, tabbtecken och interpunktion räknas som ett tecken när Substring-metoden beräknar startindex och längd. Varje position i strängen, inklusive blanksteg, är en del av antalet, inte bara de synliga bokstäverna.

Ja. GitHub Copilot i Visual Studio 2026 förvandlas en kommentar på vanlig engelska, till exempel extracLägger in texten före ett kommatecken i ett fungerande delsträngsanrop med IndexOf. Granska alltid de genererade indexen för att bekräfta att de håller sig inom intervallet.

Ja. Visual Studio 2026 parar ihop GitHub Copilot med IntelliCode för att flagga sannolikt utanför intervallet, föreslå korrekta argument och slutföra delsträngsanrop medan du skriver, helping Du förhindrar ett ArgumentOutOfRangeException innan du kör programmet.

Sammanfatta detta inlägg med: