在 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"]
。
我如何在我的代码中使用这个对象?
假设你使用的是JavaString
class的.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"]
当我在 clojure 中调用 .split
方法时,我得到:#object["[Ljava.lang.String;" 0x5aaf6982 "[Ljava.lang.String;@5aaf6982"] #object["[Ljava.lang.String;" 0x18fbbda2 "[Ljava.lang.String;@18fbbda2"]
。
我如何在我的代码中使用这个对象?
假设你使用的是JavaString
class的.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"]