Haskell:
การลบเครื่องหมายอัญประกาศออกจากสตริง
วิธีการ:
ใน Haskell, เราสามารถสร้างฟังก์ชันที่ลบเครื่องหมายอัญประกาศทั้งหมดออกจากสตริงที่กำหนดได้ มันเหมือนกับบอกให้เครื่องหมายอัญประกาศหยุดกวน และตรวจสอบให้แน่ใจว่าพวกมันรับรู้ถึงเบาะแส
import Data.List (intercalate)
import Data.Char (isPunctuation)
removeQuotes :: String -> String
removeQuotes = filter (\c -> c /= '"' && c /= '\'')
main :: IO ()
main = do
let stringWithQuotes = "Haskell said, \"Let's learn some functions!\""
putStrLn $ removeQuotes stringWithQuotes
ผลลัพธ์ตัวอย่าง:
Haskell said, Lets learn some functions!
ศึกษาลึกซึ้ง
มีครั้งหนึ่งก่อนที่สตริงในการเขียนโปรแกรมจะเป็นเรื่องปกติเหมือนวิดีโอแมวบนอินเทอร์เน็ต, การจัดการข้อความเป็นเรื่องยุ่งยาก แต่เมื่อภาษาโปรแกรมพัฒนาขึ้น สตริงกลายเป็นส่วนสำคัญของการเขียนโค้ด อย่างไรก็ตาม, เครื่องหมายอัญประกาศยังคงเป็นดาบสองคม—สำคัญสำหรับการกำหนดสตริง, แต่เป็นปัญหาเมื่อรวมเป็นข้อมูลจริง
ทางเลือกอื่น? แทนที่จะไล่เครื่องหมายอัญประกาศทั้งหมดเหมือนผึ้ง, คุณสามารถเลือกได้ คุณอาจต้องการลบเพียงเครื่องหมายอัญประกาศด้านนอกสุด (การตัดทำความสะอาดแบบคลาสสิก) หรือจัดการกับเครื่องหมายอัญประกาศที่ถูกหลบหนีในสตริง
ด้านการใช้งาน, ฟังก์ชัน removeQuotes
ด้านบนใช้ lambda เพื่อตรวจสอบแต่ละอักขระ (c
) เพื่อดูว่าเป็นเครื่องหมายอัญประกาศที่ก่อกวนหรือไม่ และกรองออกตามนั้น นี่เป็นวิธีการที่ตรงไปตรงมา, แต่สำหรับข้อความขนาดใหญ่หรือกฎที่ซับซ้อนกว่านี้, คุณอาจต้องการดูที่ไลบรารีตัวแยกวิเคราะห์เช่น Parsec
ซึ่งสามารถให้ความประณีตและพลังในการประมวลผลข้อความได้มากขึ้น
ดูเพิ่มเติม:
- สำหรับผู้ที่รัก regex: Text.Regex.Posix
- บทนำเบา ๆ สู่สตริง Haskell: Learn You a Haskell for Great Good! - Starting Out