Replace String bis Integer

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von fichz.

    Replace String bis Integer

    Liebe Community

    Mein Ziel:

    Einen String so zu zerlegen,dass wenn er ein Integer am Schluss enthält , dass ich dann nur diesen Integer-Wert habe.

    zum Beispiel Wenn der String "HalloWelt2" heisst soll er mir "HalloWelt" replacen und "2" zurück geben.

    Achtung: der String hat nie den selben Namen!

    Mein Ansatz:

    VB.NET-Quellcode

    1. For Each myString In My.Settings.myFirstLinkCollection
    2. Dim Test As String = myString.Replace("", "")
    3. next



    Wie könnte ich dies nun umsetzten?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Lingo“ ()

    Dann solltest Du die Zeichen Deines Strings einzeln von hinten auf Mitgliedschaft zur Gruppe "0123456789" testen.
    Wenn nicht Member, dann abschneiden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich erläuetere mein Ziel genauer:

    Ich habe:

    StringCollection: mit verschiedenen Items/Strings
    TreeView: mit verschiedenen Items

    |-----Item1
    |-----Item2
    |-----Item3

    Nun Will ich meinem Programm die Möglichkeit geben die TreeView so zu gestalten:

    |-----Item1
    |-----SubItem1
    |-----Item2
    |-----SubItem1
    |-----SubItem2
    |-----Item3

    Die SubItems werden auch in eine StringCollection gespeichert.
    Wenn ich diese Strings nun aber wieder lade weiss ich ja nicht mehr zu welchem Item sie gehören.

    Und da ist mein Problem.
    Hier mal ein Snippet:

    VB.NET-Quellcode

    1. Imports System.Runtime.CompilerServices
    2. Module Module1
    3. Sub Main()
    4. Dim s As String = "Hallo Welt2123"
    5. Dim s2 As String = "Hallo Welt21233245345"
    6. Dim s3 As String = "String123asdaselt21233245345"
    7. Debug.Print(s.GetNumbers)
    8. Debug.Print(s2.GetNumbers)
    9. Debug.Print(s3.GetNumbers)
    10. End Sub
    11. <Extension()> _
    12. Function GetNumbers(ByVal s As String) As String
    13. Return New System.Text.StringBuilder().Append(s.Where(Function(c) Char.IsNumber(c)).ToArray).ToString
    14. End Function
    15. End Module


    Erklärung:
    Der Datentyp String wird um eine Funktion erweitert (Extension).
    Mit dieser Funkotion wird geprüft ob das einzelne Zeichen des String eine Zahl (IsNumber) ist. Alle, bei denen diese Bedienung True ergibt, werden in ein CharArray gespeichert welches wiederrum der Stringbuilder in einen kompletten String retour gibt.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten