我有一个字符串,如果它太长,必须截断200个字符。
检查cheatsheet,(subs "Lorem Ipsum" 0 200)
似乎是一个明显的选择,但如果第二个运算符大于字符串的长度,它会抛出异常。
是否有一个简单的内置函数来截断Clojure中的字符串?如果我必须自己定义,那么最简单的方法是什么?
答案 0 :(得分:20)
您可以事先检查长度,或使用min
确定剩余的实际字符数:
(defn trunc
[s n]
(subs s 0 (min (count s) n)))
答案 1 :(得分:6)
您可以将它们视为序列并获得安全(和优雅吗?)但成本是性能:
(defn truncate
[s n]
(apply str (take n s)))