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.
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:
Vi har använt följande kod:
Förklaring till Code:
- Skapa en modul som heter Module1.
- Startar huvuddelproceduren.
- Definiera en strängvariabel med namnet st och tilldela värdet Guru99 till det.
- 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.
- Skriver ut lite text och ovanstående delsträng på konsolen.
- Pausar konsolfönstret en stund i väntan på att användaren ska vidta åtgärder för att stänga det.
- Slut på det huvudsakliga underförfarandet.
- 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:
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:
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:
Vi har använt följande kod:
Förklaring till Code:
- Skapa en modul som heter Module1.
- Startar huvuddelproceduren.
- Definiera en strängvariabel med namnet st och tilldela värdet Guru99 till det.
- Definiera en strängvariabel med namnet mid1 och hämta tecknet vid index 1 av String st. Detta tecken kommer att tilldelas variabeln mid1.
- Skriver ut ovanstående tecken på konsolen.
- 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.
- Skriver ut ovanstående tecken på konsolen.
- Pausar konsolfönstret en stund i väntan på att användaren ska vidta åtgärder för att stänga det.
- Slut på det huvudsakliga underförfarandet.
- 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.






