在Clojure中调用java.lang.String .split方法

Calling java.lang.String .split methode in clojure

当我在clojure中调用.split方法时,我得到:#object["[Ljava.lang.String;" 0x5aaf6982"[Ljava.lang.String;@5aaf6982"] #object["[Ljava.lang.String;" 0x18fbbda2"[Ljava.lang.String;@18fbbda2"]。如何在代码中使用该对象?


您可以使用vec将Java数组转换为向量,例如

1
2
(vec (.split"1,2,3,4,5"","))
=> ["1""2""3""4""5"]

,但实际上,如果要将字符串拆分为Clojure集合,则应该使用clojure.string/split

1
2
(clojure.string/split"1,2,3,4,5" #",")
=> ["1""2""3""4""5"]

假设您正在使用Java String类的.split方法,则结果为Java数组。

您可以使用Clojure的aget函数访问元素。

并且根据您的用例,可能最好将数组转换为Clojure序列,因此您可以使用Clojure提供的大量函数来操纵序列。