VB.NET Substring-methode met VOORBEELD
โก Slimme samenvatting
VB.Net Substring voorbeeldtracDe `ts`-methode selecteert een gedeelte van een String door een startindex en een optionele lengte op te geven. De methode behoort tot de `String`-klasse, telt tekens vanaf nul en retourneert een gloednieuwe String zonder de originele te wijzigen.
Wat is een subtekenreeks?
De Substring-functie wordt gebruikt om een โโdeel van een opgegeven tekenreeks te verkrijgen. Deze methode is gedefinieerd in de String-klasse. Microsoft VB.NetJe moet de startindex opgeven van waaruit de tekenreeks zal worden weergegeven.tracted. De string zal worden geรซxtracvanaf die index tot de lengte die u opgeeft.
Voor extracBij het lezen van tekst is het handig om de syntaxis te begrijpen die de Substring-methode verwacht.
Syntaxis van subtekenreeks
De functie accepteert twee argumenten, zoals weergegeven in de volgende syntaxis:
Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String
Hier
- Het trefwoord ByVal geeft pass-by-value aan, wat een mechanisme is voor het doorgeven van argumenten aan functies.
- De start_Index is de index van waaruit de substring wordt verkregen.
- `sub_length` geeft de lengte aan tot waar de String vanaf de `start_Index` wordt gekopieerd. Deze lengte wordt gemeten in het aantal tekens. De functie retourneert de extracted substring.
De startindex is nulgebaseerd, dus het eerste teken van de tekenreeks staat op positie 0 in plaats van positie 1.
Nu de syntaxis is gedefinieerd, laten de volgende voorbeelden zien hoe de Substring-methode werkt binnen een consoletoepassing.
Voorbeelden
Stap 1) Maak een nieuwe consoletoepassing aan.
Stap 2) Voeg de volgende code eraan toe:
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
Stap 3) Klik op de knop 'Start' in de werkbalk om de code uit te voeren. Je zou het volgende resultaat moeten krijgen:
We hebben de volgende code gebruikt:
Uitleg van Code:
- Een module maken met de naam Module1.
- Het starten van de hoofdsubprocedure.
- Een stringvariabele met de naam st definiรซren en er een waarde aan toewijzen. Guru99 erbij.
- Een tekenreeksvariabele met de naam 'subst' definiรซren als een subtekenreeks van de tekenreeks 'st' vanaf index 0 en met een lengte van 4 tekens.
- Een stukje tekst en de bovenstaande substring op de console afdrukken.
- Het consolevenster een tijdje pauzeren, wachtend tot de gebruiker actie onderneemt om het te sluiten.
- Einde van de hoofdsubprocedure.
- Einde van de module.
Eรฉn argument
Wat als we slechts รฉรฉn argument doorgeven aan de functie? De functie kopieert alle gegevens in de String die begint met die index. Wat er gebeurt, is dat de functie Substring intern alle stringgegevens in die index kopieert, evenals de gegevens die op die index volgen. Bijvoorbeeld:
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 op de Start-knop om de code uit te voeren. Het zou het volgende moeten retourneren:
De Substring-functie gaf 99 terug. We hebben parameter 4 aan de functie doorgegeven, wat betekent dat deze zal beginnen met extract is de substring vanaf het teken op index 4 tot het einde van de string. 9 is het teken op index 4 van de string. Guru99, vandaar de extracDe verandering begon daar.
Naast het verwijderen van tekens vanaf een enkele index, kan de Substring-methode ook tekens in het midden van een tekenreeks selecteren.
Middelste karakters
Het is ook mogelijk om de middelste tekens van de String in kwestie te krijgen. In dit geval hoeven we alleen de beginindex en de lengte van de String op te geven die we nodig hebben. In het volgende voorbeeld krijgen we een substring van de opgegeven String van index 2 en de String heeft een lengte van 2 tekens:
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 op de Start-knop in de werkbalk om de code uit te voeren. U krijgt het volgende resultaat:
In het bovenstaande voorbeeld gaf de Substring-functie 'ru' terug. We gaven de parameters (2, 2) door aan de functie. De eerste 2 geeft de functie de instructie om te beginnen met de ex.tracde eerste 2 geeft de functie de opdracht om een โโsubstring van index 2 terug te geven, terwijl de tweede 2 de functie instrueert om een โโsubstring met een lengte van slechts 2 tekens terug te geven. Dit betekent dat de extracDe substring moet beginnen bij het element op index 2 van de string. Guru99, wat r is. Omdat de geretourneerde substring slechts een lengte van 2 tekens mag hebben, is de extracDe invoer gaat niet verder dan de 'u', vandaar dat er 'ru' werd geretourneerd.
Eรฉn Char
We kunnen de Substring-functie gebruiken om een โโenkel teken uit een string te halen. In zo'n geval is het noodzakelijk dat u een toewijzing maakt, maar het teken kan direct worden benaderd. Dit is iets sneller. Het volgende voorbeeld laat twee manieren zien waarop we dit kunnen bereiken:
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 op de Start-knop om de code uit te voeren. U krijgt het volgende resultaat:
We hebben de volgende code gebruikt:
Uitleg van Code:
- Een module maken met de naam Module1.
- Het starten van de hoofdsubprocedure.
- Een stringvariabele met de naam st definiรซren en er een waarde aan toewijzen. Guru99 erbij.
- Het definiรซren van een stringvariabele genaamd mid1 en het verkrijgen van het karakter op index 1 van String st. Dit teken wordt toegewezen aan de variabele mid1.
- Het bovenstaande karakter op de console afdrukken.
- Het definiรซren van een stringvariabele genaamd mid2 en het verkrijgen van het karakter op index 1 met een lengte van 1 uit String st. De lengte van 1 betekent dat hetzelfde teken wordt geretourneerd bij de startindex. Het tellen begint vanaf de startindex die u opgeeft. Dit teken wordt toegewezen aan de variabele mid2.
- Het bovenstaande karakter op de console afdrukken.
- Het consolevenster een tijdje pauzeren, wachtend tot de gebruiker actie onderneemt om het te sluiten.
- Einde van de hoofdsubprocedure.
- Einde van de module.
Zodra je je op je gemak voelttracBij het verwerken van subtekenreeksen is het handig om te weten hoe je om moet gaan met de fouten die de methode kan veroorzaken.
Veelvoorkomende fouten bij het gebruik van subtekenreeksen en hoe u deze kunt vermijden
De Substring-methode stelt strenge eisen aan de waarden die eraan worden doorgegeven. Wanneer een argument buiten de grenzen van de String valt, genereert VB.Net een ArgumentOutOfRangeException en stopt het programma tijdens de uitvoering. Door de regels te begrijpen, kunt u deze veelgemaakte fout voorkomen.
De methode genereert de uitzondering in drie situaties:
- De start_Index is een negatief getal.
- De start_index is groter dan de lengte van de tekenreeks.
- De som van start_Index en sub_length wijst voorbij het einde van de String.
Een veelgemaakte fout is het gebruiken van het resultaat van de IndexOf-functie zonder het eerst te controleren. Wanneer IndexOf het teken niet vindt, retourneert het -1, en het doorgeven van -1 aan Substring veroorzaakt een uitzondering. De volgende code voorkomt dit:
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
Door de index te valideren vรณรณr de aanroep blijft uw applicatie soepel werken, zelfs als de invoerstring niet het verwachte teken bevat.
Een deeltekenreeks verkrijgen vรณรณr of na een teken
Een veelvoorkomende taak is extracHet gaat erom de tekst te splitsen die vรณรณr of na een specifiek teken verschijnt, bijvoorbeeld om een โโe-mailadres te splitsen bij het @-teken. VB.Net biedt hiervoor geen aparte functie, maar je kunt IndexOf combineren met Substring om dit te bereiken.
Tekst vรณรณr een teken: Roep IndexOf aan om het teken te lokaliseren en geef die index vervolgens door als de lengte aan 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
De code print guru99, het gedeelte van de tekenreeks dat vรณรณr het @-teken staat.
Tekst na een teken: Tel 1 op bij de index en laat Substring doorlopen tot het einde van de String:
Dim domainPart As String = email.Substring(position + 1) Console.WriteLine(domainPart)
Dit retourneert example.com. Als een teken meer dan eens voorkomt, gebruik dan LastIndexOf in plaats van IndexOf om te beginnen bij de laatste keer dat het voorkomt in plaats van de eerste keer.
Substring versus links-, rechts- en middenfuncties
Visual Basic erft drie verouderde tekenreeksfuncties van eerdere versies: Left, Right en Mid. Deze bevinden zich in de MicrosoftDe .VisualBasic-naamruimte kan vertrouwder aanvoelen voor ontwikkelaars die gewend zijn aan klassiek VB.
- Links(string, n) Retourneert de eerste n tekens van een tekenreeks.
- Rechts(string, n) Retourneert de laatste n tekens van een tekenreeks.
- Midden(string, begin, lengte) Retourneert een gedeelte vanaf een beginpositie, net als Substring.
Het belangrijkste verschil zit in de manier waarop ze posities tellen. De Mid-functie is gebaseerd op รฉรฉn, dus het eerste teken staat op positie 1, terwijl de Substring-methode gebaseerd is op nul en begint te tellen bij 0. Substring is de standaard .NET-aanpak en werkt hetzelfde in elke .NET-taal, dus het is de aanbevolen keuze voor nieuwe code. Reserveer Left, Right en Mid voor het onderhouden van oudere Visual Basic-projecten.






