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.

  • ๐Ÿ”ข Nullbasierter Index: Die Substring-Methode zรคhlt die Zeichen ab Index 0, der erste Buchstabe eines Strings befindet sich also an Position Null.
  • โ˜‘๏ธ Zwei รœberlastungen: Die รœbergabe eines Arguments gibt alles ab diesem Index zurรผck, wรคhrend die รœbergabe zweier Argumente eine feste Anzahl von Zeichen zurรผckgibt.
  • ๏ธ Extract nach Position: Kombinieren Sie Substring mit IndexOf oder LastIndexOf, um den Text vor oder nach einem bestimmten Zeichen zu erfassen.
  • โš ๏ธ Sichere Indexierung: Ein negativer oder auรŸerhalb des gรผltigen Bereichs liegender Index lรถst eine ArgumentOutOfRangeException aus. รœberprรผfen Sie daher die Werte, bevor Sie die Methode aufrufen.
  • ๐Ÿ”ค Unverรคnderliches Ergebnis: Substring gibt eine neue Zeichenkette zurรผck und lรคsst die Quellzeichenkette unverรคndert, was der Unverรคnderlichkeit von .NET-Zeichenketten entspricht.
  • ๐Ÿค– KI-Unterstรผtzung: GitHub Copilot und IntelliCode Visual Studio 2026 schlรคgt wรคhrend der Eingabe korrekte Substring-Aufrufe vor und kennzeichnet Indizes auรŸerhalb des gรผltigen Bereichs.

VB.NET-Teilzeichenfolge

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:

VB.NET-Teilzeichenfolgenbeispielausgabe

Wir haben den folgenden Code verwendet:

VB.NET-Substring-Codebeispiel

Erklรคrung von Code:

  1. Erstellen eines Moduls mit dem Namen Module1.
  2. Starten der Hauptunterprozedur.
  3. Eine String-Variable namens st definieren und ihr den Wert zuweisen Guru99 dazu.
  4. Eine Stringvariable namens 'subst' wird als Teilstring des Strings 'st' ab Index 0 und mit einer Lรคnge von 4 Zeichen definiert.
  5. Drucken von Text und der obigen Teilzeichenfolge auf der Konsole.
  6. Das Konsolenfenster fรผr eine Weile anhalten und darauf warten, dass der Benutzer MaรŸnahmen ergreift, um es zu schlieรŸen.
  7. Ende des Hauptteilverfahrens.
  8. 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:

VB.NET-Teilzeichenfolge mit einem Argument

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:

VB.NET Teilzeichenkette mit mittleren Zeichen

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:

VB.NET Teilzeichenkette: Ausgabe eines einzelnen Zeichens

Wir haben den folgenden Code verwendet:

VB.NET-Teilzeichenfolgencode fรผr ein einzelnes Zeichen

Erklรคrung von Code:

  1. Erstellen eines Moduls mit dem Namen Module1.
  2. Starten der Hauptunterprozedur.
  3. Eine String-Variable namens st definieren und ihr den Wert zuweisen Guru99 dazu.
  4. 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.
  5. Drucken des obigen Zeichens auf der Konsole.
  6. 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.
  7. Drucken des obigen Zeichens auf der Konsole.
  8. Das Konsolenfenster fรผr eine Weile anhalten und darauf warten, dass der Benutzer MaรŸnahmen ergreift, um es zu schlieรŸen.
  9. Ende des Hauptteilverfahrens.
  10. 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.

Hรคufig gestellte Fragen

Ja. Die Substring-Methode arbeitet nullbasiert, daher befindet sich das erste Zeichen des Strings an Index 0, das zweite an Index 1 usw. Das Zรคhlen ab null ist wichtig fรผr die Berechnung der Startposition.

Nein. Strings in VB.NET sind unverรคnderlich, daher รคndert die Substring-Methode den ursprรผnglichen String niemals. Sie gibt einen vรถllig neuen String zurรผck, der den ursprรผnglichen String enthรคlt.tracted Zeichen, wรคhrend die Quellzeichenkette ihren ursprรผnglichen Wert beibehรคlt.

Teilzeichenkette extracts ist ein zusammenhรคngender Abschnitt einer Zeichenkette, der durch Index und Lรคnge definiert wird. Split Teilt eine Zeichenkette in ein Array kleinerer Zeichenketten auf, sobald ein Trennzeichen wie ein Komma oder ein Leerzeichen vorkommt. Verwenden Sie `Split` fรผr Listen und `Substring` fรผr Teilzeichenketten.

Wird die Lรคnge 0 รผbergeben, wird ein leerer String (โ€žโ€œ) zurรผckgegeben, nicht Nothing. Der Aufruf ist gรผltig und lรถst keine Ausnahme aus, sofern der Startindex noch innerhalb der Grenzen des Strings liegt.

Die Methode `Substring` behรคlt den angegebenen Teil der Zeichenkette bei und verwirft den Rest. Die Methode `Remove` bewirkt das Gegenteil: Sie lรถscht die Zeichen ab einem bestimmten Index und gibt die verbleibende Zeichenkette zurรผck. Es handelt sich um komplementรคre Operationen.

Ja. Leerzeichen, Tabulatoren und Satzzeichen zรคhlen jeweils als ein Zeichen, wenn die Substring-Methode den Startindex und die Lรคnge berechnet. Jede Position im String, einschlieรŸlich Leerzeichen, wird mitgezรคhlt, nicht nur die sichtbaren Buchstaben.

Ja. GitHub-Copilot Visual Studio 2026 wandelt einen Kommentar in einfacher Sprache, wie z. B. โ€žexโ€œ, in einen Kommentar um.tracDer Text vor einem Komma wird mithilfe der Funktion `IndexOf` in einen funktionierenden Substring-Aufruf umgewandelt. รœberprรผfen Sie stets die generierten Indizes, um sicherzustellen, dass sie im gรผltigen Bereich liegen.

Ja. Visual Studio 2026 kombiniert GitHub Copilot mit IntelCode um wahrscheinlich auรŸerhalb des gรผltigen Bereichs liegende Indizes zu kennzeichnen, korrekte Argumente vorzuschlagen und Substring-Aufrufe wรคhrend der Eingabe zu vervollstรคndigen, helping Sie verhindern eine ArgumentOutOfRangeException, bevor Sie das Programm ausfรผhren.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: