Clojure:
การลบเครื่องหมายอัญประกาศออกจากสตริง
วิธีการ:
ใน Clojure, สตริงเป็น immutable, ดังนั้นเมื่อเราพูดถึง “การลบเครื่องหมายอัญประกาศ,” เรากำลังพูดถึงการสร้างสตริงใหม่โดยไม่มีเครื่องหมายอัญประกาศ นี่คือวิธีการโดยใช้ clojure.string/replace
:
(require '[clojure.string :as str])
; ลองกำจัดเครื่องหมายอัญประกาศทวิภาค
(defn remove-double-quotes [s]
(str/replace s #"\"" ""))
; และกำจัดเครื่องหมายอัญประกาศเอกภาค
(defn remove-single-quotes [s]
(str/replace s #"\'" ""))
; ตัวอย่างการใช้งาน:
(remove-double-quotes "\"Hello, World!\"") ; => "Hello, World!"
(remove-single-quotes "'Hello, World!'") ; => "Hello, World!"
ต้องการจัดการทั้งเครื่องหมายอัญประกาศทวิภาคและเอกภาคพร้อมกันเลยหรือ? ลองดูสิ:
(defn remove-quotes [s]
(str/replace s #"[\"\']" ""))
; ตัวอย่างการใช้งาน:
(remove-quotes "\"Hello, 'Clojure' World!\"") ; => "Hello, Clojure World!"
ลงลึก
ในอดีตเมื่อข้อมูลสกปรกมากกว่าห้องนอนของเด็ก, เครื่องหมายอัญประกาศในสตริงเป็นเรื่องปกติสำหรับการระบุข้อความ แต่เมื่อวิทยาการคอมพิวเตอร์พัฒนาขึ้น, เครื่องหมายอัญประกาศได้กลายเป็นมากกว่าการคั่นข้อความ - พวกมันมีบทบาททางไวยากรณ์ในภาษาโปรแกรม
Clojure, ด้วยมรดก Lisp ของมัน, ไม่ใช้เครื่องหมายอัญประกาศในแบบที่ภาษาอื่นอาจใช้ แน่นอนว่าพวกมันใช้สำหรับการระบุสตริง, แต่พวกมันยังมีบทบาทพิเศษในการสร้าง literals อย่างไรก็ตาม, การลบเครื่องหมายอัญประกาศจากสตริงยังคงเป็นงานที่เหนือเวลา
ทำไมไม่ตัดส่วนปลายของสตริงออก? อืม, นั่นเป็นการสมมติว่าเครื่องหมายอัญประกาศของคุณมักจะกอดต้นและปลายของสตริงเหมือนคู่แกรนด์พาร์เรนต์ที่รักใคร่อย่างมาก ข้อมูลในโลกจริงเลอะเทอะกว่านั้น ใส่ regex (regular expressions), ซึ่งให้คุณเป้าหมายเครื่องหมายอัญประกาศไม่ว่าพวกมันจะซ่อนอยู่ที่ไหน
มีทางเลือกอื่นหรือไม่? แน่นอน, คุณสามารถเจ๋งกับ subs
, trim
, triml
, trimr
, หรือแม้แต่ transducers หากคุณต้องการอวด แต่ replace
ด้วย regex เหมือนการนำดาบไลท์เซเบอร์ไปที่การต่อสู้ด้วยมีด - มันตัดผ่านไปยังจุดสำคัญได้ทันที
ดูเพิ่มเติม
หากสมองของคุณกำลังกระสันอยากได้ความรู้เพิ่มเติมเกี่ยวกับการจัดการสตริง Clojure, เส้นทางเหล่านี้อาจช่วยได้:
- ClojureDocs เกี่ยวกับ
clojure.string/replace
: https://clojuredocs.org/clojure.string/replace - Regular expressions ใน Clojure: https://clojure.org/guides/learn/syntax#_regex
- Java interop สำหรับการจัดการสตริง (Clojure ทำงานบน JVM หลังจากทั้งหมด): https://clojure.org/reference/java_interop#_working_with_strings
อย่าหยุดแค่การลบเครื่องหมายอัญประกาศ เมืองของการวิเศษสตริงใน Clojure-land กำลังรอให้คุณไปค้นพบ