String nur aus einem bestimmten Bereich zwischen zwei Zeichen auslesen

  • VB.NET
  • .NET (FX) 1.0–2.0

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von felicyaN.

    String nur aus einem bestimmten Bereich zwischen zwei Zeichen auslesen

    Hallo Leute,

    Ich möchte einen String in kleinere Strings zerlegen

    So habe ich es probiert:

    VB.NET-Quellcode

    1. Dim string1 As String = ";1;2;3"
    2. Dim string2 As String = String.Empty
    3. string2 = string1.Substring(string1.LastIndexOf(";") + 1)
    4. MessageBox.Show(string2)

    String2 würde jetzt "3" sein.

    Jetzt möchte ich auch aus den restlichen Inhalt von string1 zerlegen und das dann in string2 reinschreiben (natürlich ohne ";") und dass es mit beliebiger Länge von string1 funktioniert also wenn string1 auch z.B.: "1;2;3;4;5;6" wäre.

    Könnte mir da jemand weiterhelfen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()

    felicyaN schrieb:

    Jetzt möchte ich auch aus den restlichen Inhalt von string1 zerlegen und das dann in string2 reinschreiben (natürlich ohne ";") und dass es mit beliebiger Länge von string1 funktioniert also wenn string1 auch z.B.: "1;2;3;4;5;6" wäre.

    wenn ich dich jetzt wörtlich nehme:

    VB.NET-Quellcode

    1. Dim string2 = string1.Replace(";"c, "")​

    Wie EDR bereits erwähnt hat, kannst du dir diese Function und ihre Überladungen auch über den Objektkatalog anschauen...

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. Dim String1 As String = ";1;2;3;4;5;6;"
    5. Dim StringArray As String() = String1.Split(";"c)
    6. For Each member As String In StringArray
    7. If Not String.IsNullOrEmpty(member) Then 'sorgt dafür, dass nicht die ""-Strings angezeigt werden. Dein String1 startet ja unglücklicherweise mit ;
    8. MessageBox.Show(member, "Info", MessageBoxButtons.OK, MessageBoxIcon.Information)
    9. End If
    10. Next
    11. End Sub
    12. End Class


    PS: Handelt es sich hier wirklich um .NET2.0 und VB6 , @felicyaN ?

    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.

    Bartosz schrieb:

    'sorgt dafür, dass nicht die ""-Strings angezeigt werden
    Dafür gibt's bei .Split() als weiteren Parameter das StringSplitOptions.RemoveEmptyEntries

    @Bartosz: Ich änder mal den Tag von VB6 auf VB.NET.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Hallo,

    Dankeschön für die Antworten, @Bartosz nein, es handelt sich hier nur um VB.NET, ich habe einfach nur den Tag übersehen.
    Daher klappt deine Lösung wunderbar und danke dafür. Ich kannte vorher .Split() da ich ein Anfänger bin und daher wollte ich es mit LastIndexOf und Substring machen.
    Nochmal vielen Dank für die Antworten :)