Clojure:
提取子字符串
How to:
Clojure里提取子字符串很直接。用subs
函数就行:
;; 截取一个字符串的一部分
(def original-string "Clojure欢迎你")
;; 从索引2开始,提取到索引8(不包括8)
(def extracted-substring (subs original-string 2 8))
(println extracted-substring) ;; 输出: ojure欢
记住,索引是从0开始的。
Deep Dive
提取子字符串这个操作其实有很长的历史。大多语言提供这功能。在Clojure中,subs
是基于Java的substring
,这保证了高性能。实际上,当你用subs
时,Clojure底层直接调用了Java的方法。
其他选择,比如用正则表达式做更复杂的提取,也是可行的:
;; 使用正则表达式提取子字符串
(def original-string "Find #clojure in this string")
(re-find #"(?<=#)\w+" original-string) ;; 输出: "clojure"
提取子字符串时,尤其注意边界条件。比如下标越界,会产生错误。
See Also
- Clojure
subs
函数官方文档:Clojure Subs - 更多关于正则表达式在Clojure中的用法:Clojure Regex
- Java
substring
方法介绍:Java Substring