Vorkommnisse eines Zeichen in einem String zählen + entfernen

  • VB.NET

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

    Vorkommnisse eines Zeichen in einem String zählen + entfernen

    Hey, kennt jemand eine Möglichkeit, die Anzahl eines Zeichens in einem String zu zählen und falls dieses mehr als 1 mal vorkommt so zu entfernen, dass es nur noch 1 mal übrig bleibt? Bei mir scheiterts schon an vielen Faktoren und nich komme einfach nicht auf irgendeine Lösung.
    Nun bin ich soweit:

    VB.NET-Quellcode

    1. Public Function StringCount(ByVal Text As String, ByVal Find As String, ByVal CompareType As StringComparison) As Integer
    2. ' Wenn Such-String leer, Funktion verlassen
    3. If IsNothing(Find) OrElse Find.Length = 0 Then Return -1
    4. Dim count As Integer = 0
    5. Dim pos As Integer = -1
    6. ' Solange nach gesuchtem Zeichen/Zeichenfolge
    7. ' suchen, bis keine Fundstelle mehr vorhanden
    8. Do
    9. pos = Text.IndexOf(Find, pos + 1, CompareType)
    10. If pos >= 0 Then count += 1
    11. Loop Until pos < 0
    12. ' Rückgabewert: Anzahl Fundstellen
    13. Return (count)
    14. End Function
    15. Dim Content As String = ""
    16. For i As Integer = 0 To TextBox1.Text.Length - 1
    17. Dim Zeichen As Char = TextBox1.Text.Chars(i)
    18. If Not Content.Contains(Zeichen) Then
    19. Content += Zeichen
    20. Dim Count As Integer = StringCount(TextBox1.Text, Zeichen, StringComparison.CurrentCulture)
    21. If Count > 1 Then
    22. ' An der Stelle sollen die Zeichen entfernt werden, solange bis das gewünschte Zeichen nur noch 1 mal vorhanden ist
    23. End If
    24. End If
    25. Next


    An der kommentierten Stelle fällt mir nicht ein, wie ich die Zeichen löschen kann, da ja dann die Schleife nicht mehr funktioniert.