我还是Clojure的新人;我正在尝试拆分从CSV文件解析的值,但不使用clojure.string/split
lib或任何其他lib clojure.core
,请提前帮助,谢谢。
答案 0 :(得分:9)
你可以用re-seq和string / split
来完成相同的结果user> (clojure.string/split "a,b,c,d,e" #",")
["a" "b" "c" "d" "e"]
user> (re-seq #"[^,]+" "a,b,c,d,e")
("a" "b" "c" "d" "e")
这两个都没有依赖关系,因此在很多情况下几乎没有理由不使用字符串/拆分。
如果您愿意添加依赖项,解析CSV也是一个不错的选择:
user> (require '[clojure.data.csv :as csv])
nil
user> (csv/read-csv "A,B,C\n1,2,3\n4,5,5")
(["A" "B" "C"] ["1" "2" "3"] ["4" "5" "5"])
答案 1 :(得分:2)
如果您的双手被束缚,无法使用clojure.string
或clojure.data.csv
或re-seq
或互操作:
(defn comma-separate [s]
(->> s
(partition-by #{\,})
(take-nth 2)
(map #(apply str %))))
(comma-separate "foo,bar") ;; ("foo" "bar")
我同意您应该使用clojure.string
或clojure.data.csv