VB.NET-Substring-Methode mit BEISPIEL
โก Intelligente Zusammenfassung
VB.NET Substring extracDie Methode `ts` extrahiert einen Teil eines Strings, indem sie einen Startindex und optional eine Lรคnge angibt. Sie gehรถrt zur Klasse `String`, zรคhlt die Zeichen ab null und gibt einen neuen String zurรผck, ohne den ursprรผnglichen zu verรคndern.
Was ist eine Teilzeichenfolge?
Die Substring-Funktion dient dazu, einen Teil einer angegebenen Zeichenkette zu extrahieren. Diese Methode ist in der String-Klasse definiert. Microsoft VB.NetSie mรผssen den Startindex angeben, ab dem die Zeichenkette ausgegeben wird.tracted. Die Zeichenkette wird ex seintracted von diesem Index bis zur von Ihnen angegebenen Lรคnge.
Vor ExtracUm einen Text zu verstehen, ist es hilfreich, die Syntax zu kennen, die die Substring-Methode erwartet.
Syntax des Teilstrings
Die Funktion akzeptiert zwei Argumente, wie in der folgenden Syntax gezeigt:
Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String
Dabei steht:
- Das Schlรผsselwort ByVal bezeichnet die Wertรผbergabe, einen Mechanismus zur รbergabe von Argumenten an Funktionen.
- Der Startindex ist der Index, ab dem die Teilzeichenkette ermittelt wird.
- `sub_length` bezeichnet die Lรคnge, bis zu der der String ab dem `start_Index` kopiert wird. Diese Lรคnge wird in Zeichen gemessen. Die Funktion gibt den Wert von `ex` zurรผck.tracted Teilzeichenkette.
Der Startindex beginnt bei null, daher befindet sich das erste Zeichen der Zeichenkette an Position 0 und nicht an Position 1.
Nachdem die Syntax definiert wurde, zeigen die folgenden Beispiele die Funktionsweise der Substring-Methode in einer Konsolenanwendung.
Beispiele
Schritt 1) โโErstellen Sie eine neue Konsolenanwendung.
Schritt 2) Fรผgen Sie folgenden Code hinzu:
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
Schritt 3) Klicken Sie in der Symbolleiste auf die Schaltflรคche โStartโ, um den Code auszufรผhren. Sie sollten folgendes Ergebnis erhalten:
Wir haben den folgenden Code verwendet:
Erklรคrung von Code:
- Erstellen eines Moduls mit dem Namen Module1.
- Starten der Hauptunterprozedur.
- Eine String-Variable namens st definieren und ihr den Wert zuweisen Guru99 dazu.
- Eine Stringvariable namens 'subst' wird als Teilstring des Strings 'st' ab Index 0 und mit einer Lรคnge von 4 Zeichen definiert.
- Drucken von Text und der obigen Teilzeichenfolge auf der Konsole.
- Das Konsolenfenster fรผr eine Weile anhalten und darauf warten, dass der Benutzer Maรnahmen ergreift, um es zu schlieรen.
- Ende des Hauptteilverfahrens.
- Ende des Moduls.
Ein Argument
Was ist, wenn wir der Funktion nur ein Argument รผbergeben? Die Funktion kopiert alle Daten im String, der mit diesem Index beginnt. Was passiert, ist, dass die Substring-Funktion intern alle String-Daten an diesem Index sowie die Daten, die auf diesen Index folgen, kopiert. Zum Beispiel:
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
Klicken Sie auf die Schaltflรคche โStartโ, um den Code auszufรผhren. Er sollte Folgendes zurรผckgeben:
Die Substring-Funktion gab 99 zurรผck. Wir haben der Funktion den Parameter 4 รผbergeben, was bedeutet, dass sie mit der Exponentialfunktion beginnt.tract ist die Teilzeichenkette vom Zeichen an Index 4 bis zum Ende der Zeichenkette. 9 ist das Zeichen an Index 4 der Zeichenkette. Guru99, daher das ExtracDie tion begann dort.
Neben dem Entfernen von Zeichen ab einem einzelnen Index kann die Substring-Methode auch Zeichen in der Mitte einer Zeichenkette auswรคhlen.
Mittlere Charaktere
Es ist uns auch mรถglich, die mittleren Zeichen des betreffenden Strings abzurufen. In diesem Fall mรผssen wir nur den Startindex und die Lรคnge des Strings angeben, die wir benรถtigen. Im folgenden Beispiel erhalten wir einen Teilstring des angegebenen Strings vom Index 2 und der String hat eine Lรคnge von 2 Zeichen:
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
Klicken Sie in der Symbolleiste auf die Schaltflรคche โStartโ, um den Code auszufรผhren. Sie erhalten das folgende Ergebnis:
Im obigen Beispiel gab die Substring-Funktion โruโ zurรผck. Wir haben der Funktion die Parameter (2, 2) รผbergeben. Die ersten beiden Werte weisen die Funktion an, mit dem Exponenten zu beginnen.tracDie erste 2 gibt an, dass die Funktion eine Teilzeichenkette mit genau zwei Zeichen zurรผckgeben soll.tracDie Teilzeichenkette sollte ab dem Element an Index 2 der Zeichenkette beginnen. Guru99, was r entspricht. Da die zurรผckgegebene Teilzeichenkette nur eine Lรคnge von 2 Zeichen haben sollte, ist das ExtracDie Zeichenkette geht nicht รผber das 'u' hinaus, daher wurde 'ru' zurรผckgegeben.
Ein Zeichen
Wir kรถnnen die Substring-Funktion verwenden, um ein einzelnes Zeichen aus einem String zu erhalten. In einem solchen Fall mรผssen Sie eine Zuweisung vornehmen, aber auf das Zeichen kann direkt zugegriffen werden. Das ist etwas schneller. Das folgende Beispiel zeigt zwei Mรถglichkeiten, wie wir dies erreichen kรถnnen:
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
Klicken Sie auf die Schaltflรคche โStartโ, um den Code auszufรผhren. Sie erhalten das folgende Ergebnis:
Wir haben den folgenden Code verwendet:
Erklรคrung von Code:
- Erstellen eines Moduls mit dem Namen Module1.
- Starten der Hauptunterprozedur.
- Eine String-Variable namens st definieren und ihr den Wert zuweisen Guru99 dazu.
- Definieren Sie eine Zeichenfolgenvariable mit dem Namen โmid1โ und rufen Sie das Zeichen an Index 1 von โString stโ ab. Dieses Zeichen wird der Variablen mid1 zugewiesen.
- Drucken des obigen Zeichens auf der Konsole.
- Definieren Sie eine Zeichenfolgenvariable mit dem Namen โmid2โ und rufen Sie das Zeichen am Index 1 mit einer Lรคnge von 1 aus der Zeichenfolge โstโ ab. Die Lรคnge 1 bedeutet, dass am Startindex dasselbe Zeichen zurรผckgegeben wird. Die Zรคhlung beginnt ab dem von Ihnen angegebenen Startindex. Dieses Zeichen wird der Variablen mid2 zugewiesen.
- Drucken des obigen Zeichens auf der Konsole.
- Das Konsolenfenster fรผr eine Weile anhalten und darauf warten, dass der Benutzer Maรnahmen ergreift, um es zu schlieรen.
- Ende des Hauptteilverfahrens.
- Ende des Moduls.
Sobald Sie sich wohlfรผhlen,tracBeim Extrahieren von Teilstrings ist es sinnvoll zu wissen, wie man mit den Fehlern umgeht, die die Methode auslรถsen kann.
Hรคufige Fehler bei Teilstrings und wie man sie vermeidet
Die Substring-Methode ist bezรผglich der รผbergebenen Werte sehr streng. Liegt ein Argument auรerhalb des gรผltigen Bereichs der Zeichenkette, lรถst VB.NET eine ArgumentOutOfRangeException aus und beendet das Programm zur Laufzeit. Das Verstรคndnis dieser Regeln hilft, diesen hรคufigen Fehler zu vermeiden.
Die Methode lรถst in drei Situationen eine Ausnahme aus:
- Der Startindex ist eine negative Zahl.
- Der Startindex ist grรถรer als die Lรคnge der Zeichenkette.
- Die Summe von start_Index und sub_length zeigt รผber das Ende der Zeichenkette hinaus.
Ein hรคufiger Fehler ist die Verwendung des Ergebnisses der IndexOf-Funktion ohne vorherige Prรผfung. Wenn IndexOf das gesuchte Zeichen nicht findet, gibt die Funktion -1 zurรผck, und die รbergabe von -1 an Substring lรถst eine Ausnahme aus. Der folgende Code verhindert dies:
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
Durch die Validierung des Index vor dem Aufruf wird ein reibungsloser Ablauf Ihrer Anwendung gewรคhrleistet, selbst wenn die Eingabezeichenfolge das erwartete Zeichen nicht enthรคlt.
Ermitteln einer Teilzeichenkette vor oder nach einem Zeichen
Eine hรคufige Aufgabe ist die ExtracDer Text, der vor oder nach einem bestimmten Zeichen steht, kann extrahiert werden, beispielsweise um eine E-Mail-Adresse am @-Zeichen zu teilen. VB.NET bietet dafรผr keine spezielle Funktion, aber Sie kรถnnen IndexOf mit Substring kombinieren, um dies zu erreichen.
Text vor einem Zeichen: Rufen Sie IndexOf auf, um das Zeichen zu finden, und รผbergeben Sie dann diesen Index als Lรคnge an 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
Der Code gibt guru99 aus, den Teil der Zeichenkette, der vor dem @-Zeichen steht.
Text nach einem Zeichen: Erhรถhe den Index um 1 und lasse Substring bis zum Ende der Zeichenkette laufen:
Dim domainPart As String = email.Substring(position + 1) Console.WriteLine(domainPart)
Dies gibt example.com zurรผck. Wenn ein Zeichen mehr als einmal vorkommt, verwenden Sie LastIndexOf anstelle von IndexOf, um beim letzten Vorkommen anstatt beim ersten zu beginnen.
Teilstring-Funktionen vs. Links-, Rechts- und Mittenfunktionen
Visual Basic รผbernimmt drei รคltere String-Funktionen aus frรผheren Versionen: Left, Right und Mid. Sie befinden sich im MicrosoftDer .VisualBasic-Namespace wirkt vertrauter auf Entwickler, die von klassischem VB kommen.
- Links(Zeichenkette, n) Gibt die ersten n Zeichen einer Zeichenkette zurรผck.
- Rechts(Zeichenkette, n) Gibt die letzten n Zeichen einer Zeichenkette zurรผck.
- Mitte(Zeichenkette, Start, Lรคnge) Gibt einen Teil ab einer Startposition zurรผck, รคhnlich wie Substring.
Der Hauptunterschied liegt in der Positionszรคhlung. Die Funktion `MID` beginnt bei 1, das erste Zeichen steht also an Position 1. Die Methode `SUBSTRING` hingegen beginnt bei 0. `SUBSTRING` ist der Standardansatz in .NET und verhรคlt sich in allen .NET-Sprachen gleich. Daher ist sie die empfohlene Wahl fรผr neuen Code. `LEFT`, `RIGHT` und `MID` sollten fรผr die Wartung รคlterer Visual Basic-Projekte reserviert bleiben.






