在Clojure中截断字符串的简单方法
我有一个字符串,如果太长,它必须被截断为200个字符 检查,在Clojure中截断字符串的简单方法,clojure,Clojure,我有一个字符串,如果太长,它必须被截断为200个字符 检查,(subs“Lorem Ipsum”0 200)似乎是一个明显的选择,但如果第二个运算符大于字符串的长度,则会引发异常 Clojure中是否有用于截断字符串的简单内置函数?如果我必须定义自己的长度,最简单的方法是什么?您可以事先检查长度,或者使用min确定将保留的实际字符数: (defn trunc [s n] (subs s 0 (min (count s) n))) 您可以将它们视为序列并获得安全性(和优雅?),但成本是性
(subs“Lorem Ipsum”0 200)
似乎是一个明显的选择,但如果第二个运算符大于字符串的长度,则会引发异常
Clojure中是否有用于截断字符串的简单内置函数?如果我必须定义自己的长度,最简单的方法是什么?您可以事先检查长度,或者使用
min
确定将保留的实际字符数:
(defn trunc
[s n]
(subs s 0 (min (count s) n)))
您可以将它们视为序列并获得安全性(和优雅?),但成本是性能:
(defn truncate
[s n]
(apply str (take n s)))
我要检查一下字符串的长度是否大于200。如果它是200个字符的子字符串,否则根本不做子字符串。这很好,特别是因为字符串在jvm中是计数类型,所以计数是一个O(1)操作。