Anführungszeichen aus einem String entfernen

Haskell:
Anführungszeichen aus einem String entfernen

Wie zu:

In Haskell können wir eine Funktion erstellen, die alle Anführungszeichen aus einem gegebenen String entfernt. Es ist, als würde man den Anführungszeichen sagen, sie sollen verschwinden, und sich vergewissern, dass sie den Wink verstehen.

import Data.List (intercalate)
import Data.Char (isPunctuation)

removeQuotes :: String -> String
removeQuotes = filter (\c -> c /= '"' && c /= '\'')

main :: IO ()
main = do
    let stringWithQuotes = "Haskell sagte, \"Lass uns einige Funktionen lernen!\""
    putStrLn $ removeQuotes stringWithQuotes

Beispielausgabe:

Haskell sagte, Lass uns einige Funktionen lernen!

Tiefer eintauchen

Es war einmal, bevor Strings in der Programmierung so allgegenwärtig waren wie Katzenvideos im Internet, da war der Umgang mit Text eine heikle Angelegenheit. Aber als die Programmiersprachen sich weiterentwickelten, wurden Strings ein wesentlicher Teil des Codierens. Dennoch blieben Anführungszeichen ein zweischneidiges Schwert—essenziell für die Definition von Strings, aber ein Ärgernis, wenn sie als tatsächliche Daten enthalten waren.

Alternativen? Anstatt alle Anführungszeichen wie Fliegen wegzuschlagen, können Sie selektiv sein. Vielleicht möchten Sie nur die äußersten Anführungszeichen entfernen (ein klassischer Trim) oder mit escapten Anführungszeichen innerhalb eines Strings umgehen.

Implementierungsweise verwendet die Funktion removeQuotes oben eine Lambda-Funktion, um jedes Zeichen (c) zu überprüfen, ob es ein lästiges Anführungszeichen ist, und filtert sie entsprechend heraus. Dies ist ein unkomplizierter Ansatz, aber für größere Texte oder komplexere Regeln möchten Sie vielleicht Parser-Bibliotheken wie Parsec betrachten, die Ihnen mehr Finesse und Kraft in der Textverarbeitung geben können.

Siehe auch: