在Clojure中截断字符串的简单方法

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

我有一个字符串,如果太长,它必须被截断为200个字符

检查,
(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)操作。