拆分字符串然后打印

时间:2013-08-31 21:26:43

标签: arrays string printing clojure

我是新手。我想拆分String然后打印。如果我这样做:

(.split "Dasher Dancer Prancer" " ")

它给出的#<String[] [Ljava.lang.String;@64e0e8ca>只是数组的toString()

然后如果我这样做:

(.length (.split "Dasher Dancer Prancer" " "))

它提供了java.lang.IllegalArgumentException: No matching field found: length for class [Ljava.lang.String;

2 个答案:

答案 0 :(得分:5)

改为使用clojure.string/split

user=> (clojure.string/split "Dasher Dancer Prancer" #" ")
["Dasher" "Dancer" "Prancer"]

不需要使用java interop。

如果您需要长度,请使用count

user=> (count (clojure.string/split "Dasher Dancer Prancer" #" "))
3

你要调用的.splitString上的一个简单的java方法调用,它返回一个数组,然后通过调用{{String将其转换为toString。 1}}就可以了。正如您所注意到的那样,它并没有给您带来理想的结果。

另一方面,

clojure.string/split返回clojure.lang.PersistentVector,其中.toString方法按预期打印内容。

答案 1 :(得分:4)

你可以使用(alength)功能:

(alength (.split "Dasher Dancer Prancer" " "))
  

用户=&GT; (doc alength)
      clojure.core / alength   ([数组])
    返回Java数组的长度。适用于所有阵列     类型。

(doc)和(find-doc)对于每日Clojure开发非常重要。

相关问题