我想将一个字符添加到一个字符串中,并获得另一个作为结果添加了该字符的字符串。
这不起作用:
(cons \a "abc")
可能的解决方案,按偏好顺序排列:
function
的(apply str (cons \a "abc"))
)
在我推出自己的解决方案之前,是否有1类解决方案?
编辑:这是一个非常愚蠢的问题。:(
发布于 2011-11-11 00:31:02
这样如何:
(str "abc" \a)
这将在我的机器上返回"abca“。
您还可以将它用于任意数量的字符串/字符:(str "kl" \m "abc" \a \b)
。
发布于 2011-11-11 00:31:40
您可以使用clojure.string
中的join
(clojure.string/join [\a "abc"])
但是对于简单的用例,你真的应该使用str
,就像@Dan Filimon建议的那样。join
还有一个额外的好处,那就是您可以在连接的字符串之间放置分隔符,但如果没有分隔符,它实际上只应用str
(defn ^String join
"Returns a string of all elements in coll, separated by
an optional separator. Like Perl's join."
{:added "1.2"}
([coll]
(apply str coll))
([separator [x & more]]
(loop [sb (StringBuilder. (str x))
more more
sep (str separator)]
(if more
(recur (-> sb (.append sep) (.append (str (first more))))
(next more)
sep)
(str sb)))))
https://stackoverflow.com/questions/8082706
复制相似问题