如果字符串太長,必須將其截斷爲200個字符。在Clojure中截斷字符串的簡單方法
檢查cheatsheet,(subs "Lorem Ipsum" 0 200)
似乎是一個明顯的選擇,但如果第二個運算符大於字符串的長度,則會引發異常。
是否有一個簡單的內置函數用於截斷Clojure中的字符串?如果我必須自己定義,最簡單的方法是什麼?
如果字符串太長,必須將其截斷爲200個字符。在Clojure中截斷字符串的簡單方法
檢查cheatsheet,(subs "Lorem Ipsum" 0 200)
似乎是一個明顯的選擇,但如果第二個運算符大於字符串的長度,則會引發異常。
是否有一個簡單的內置函數用於截斷Clojure中的字符串?如果我必須自己定義,最簡單的方法是什麼?
您可以事先檢查長度或使用min
來確定字符的實際數量將保持不變:
(defn trunc
[s n]
(subs s 0 (min (count s) n)))
這很好,特別是因爲字符串是jvm中的一個計數類型,所以count是O(1)操作。 – noisesmith
你可以把它們作爲序列,並得到安全(?和優雅),但代價是性能:
(defn truncate
[s n]
(apply str (take n s)))
我會檢查,看看如果字符串的長度是大於200.如果它是然後子字符串200個字符,否則根本不子字符串。 –