在 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"]。 我如何在我的代码中使用这个对象?

假设你使用的是JavaStringclass的.split方法,那么结果就是一个Java数组。

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

并且根据您的用例,将数组转换为 Clojure 序列可能会更好,这样您就可以使用 Clojure 提供的大量函数来操作序列。

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

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

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

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