我有一個長clojure字符串,我需要用空格分隔每2個字符(例如:「1234567890」 - >「12 34 56 78 90」。 解決方案我用的是:Clojure:每x個字符在空格中插入空格
(->>
(partition 2 2 "" s)
(map (partial join ""))
(join " "))
有沒有什麼簡單的方法來做到這一點
我有一個長clojure字符串,我需要用空格分隔每2個字符(例如:「1234567890」 - >「12 34 56 78 90」。 解決方案我用的是:Clojure:每x個字符在空格中插入空格
(->>
(partition 2 2 "" s)
(map (partial join ""))
(join " "))
有沒有什麼簡單的方法來做到這一點
你可以用正則表達式做,但就是這個簡單,我 - 是的,但它看起來像一個品味問題?。
user> (clojure.string/replace "1234567890" #"(.{2})(?!$)" "$1 ")
"12 34 56 78 90"
Anoth呃可能的變種:
user=> (->> "1234567890" (partition 2) (map #(apply str %))
(clojure.string/join " "))
"12 34 56 78 90"
@Chiron定義'簡單'。對於一個它可能會使用異步,有人會使用Java互操作,換能器或Web服務。我爲我發佈了「更簡單」的解決方案。作者將決定它是否更簡單。 – edbond 2014-10-22 14:39:07
該人寫了一個正則表達式並將其稱爲*簡單*解決方案。這是主觀的。 – edbond 2014-10-22 14:58:58
當然這是主觀的,但正則表達式是做文本轉換的標準工具。在這裏,我們有刺 - >序列seqs - > seq字符串 - >新字符串。而且我們也使用2個宏來做這麼簡單的事情。我不知道,一定是真正有意義的簡單定義。 – coredump 2014-10-22 17:12:28
它確實很整潔,但如果我打算使用它,我會留下相當多的評論來幫助未來的開發者(和我自己)! :) – Chiron 2014-10-22 12:24:49
@Chiron,當然正則表達式總是有點寫只是代碼,但這個小而簡單。 – coredump 2014-10-22 12:29:27