String Umlaute ersetzten

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von lukekogv.

    String Umlaute ersetzten

    VB.NET-Quellcode

    1. Dim sname As String = tbName.Text
    2. Dim kind As String = tbCategory.Text
    3. With sname
    4. If .Contains("Ä") Then
    5. .Replace("Ä", "AE")
    6. ElseIf .Contains("ä") Then
    7. .Replace("ä", "ae")
    8. ElseIf .Contains("Ö") Then
    9. .Replace("Ö", "OE")
    10. ElseIf .Contains("ö") Then
    11. .Replace("ö", "oe")
    12. ElseIf .Contains("Ü") Then
    13. .Replace("Ü", "UE")
    14. ElseIf .Contains("ü") Then
    15. .Replace("ü", "ue")
    16. ElseIf .Contains("ß") Then
    17. .Replace("ß", "ss")
    18. ElseIf .Contains("&") Then
    19. .Replace("&", "and")
    20. End If
    21. End With
    22. With kind
    23. If .Contains("Ä") Then
    24. .Replace("Ä", "AE")
    25. ElseIf .Contains("ä") Then
    26. .Replace("ä", "ae")
    27. ElseIf .Contains("Ö") Then
    28. .Replace("Ö", "OE")
    29. ElseIf .Contains("ö") Then
    30. .Replace("ö", "oe")
    31. ElseIf .Contains("Ü") Then
    32. .Replace("Ü", "UE")
    33. ElseIf .Contains("ü") Then
    34. .Replace("ü", "ue")
    35. ElseIf .Contains("ß") Then
    36. .Replace("ß", "ss")
    37. ElseIf .Contains("&") Then
    38. .Replace("&", "and")
    39. End If
    40. End With


    Ich habe das hier geschrieben. Und nachdem das Programm in der Verzweigung war und es den Buchstaben bleibt es beim "Ä"?!
    Arayni.setExperience(Experience.Beginner)
    Schau Dir bitte mal diesen kompletten Thread zum Thema an:

    Umlaute gegen Pednants austauschen

    Bzw. in Kurzform - es müsste z.B. heißen:

    VB.NET-Quellcode

    1. kind = kind.Replace("Ä", "AE")


    Meine Empfehlung (aber die anderen Lösungen funktionieren auch!) ist folgende Lösung von @ErfinderDesRades:

    Umlaute gegen Pednants austauschen

    Edit: @lukekogv - im verlinkten Thread wird darauf doch ebenso hingewiesen und der obige Einzeiler in meinem Post zeigt auch wo das Problem liegt.

    Sofern @arayni den verlinkten Thread durcharbeitet - dann lernt er ganz viel - wenn er es nicht tut und nur den Code kopiert ist dies dann auch sein Problem und seine eigene Verantwortung.

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Thias“ ()

    Ich würde hier eher darauf hinweisen, warum seine Lösung nicht funktioniert: Das Problem liegt in der Tatsache, dass Replace einen String nicht verändert. Die Replace-Methode erstellt hingegen eine Kopie, in der dann ausgetauscht wird und diese Kopie wird zurückgegeben und müsste für den nächsten Austausch verwendet werden. Du führst jedoch den Austausch durch und lässt das Ergebnis dann fallen. Letztendlich müsstest du also bei jedem Replace das Ergebnis speichern und damit weiterarbeiten.

    Grundsätzlich bin ich übrigens der Meinung, dass, auch wenn man im produktiven Betrieb so viel Code wie möglich wiederverwenden sollte, dies in der Lernphase nicht gilt. Der Nutzer kopiert nun den Code aus dem verlinkten Thread, ohne zu begreifen wo sein Fehler lag. Fehler wie der oben sollten immer einen Lernerfolg nach sich ziehen, außerdem hilft es dem Nutzer, etwas selbst geschafft zu haben.