2009-11-06 14 views
46

nasıl String bu dönüştürebilir ı bir LazySeqKarakterlerin LazySeq'lerini Clojure'daki bir String'e nasıl dönüştürebilirim?

(\b \ \! \/ \b \ \% \1 \9 \/ \. \i \% \$ \i \space \^@) 

gibi java.lang.Characterolduğunu farz edelim? Bariz

(String. my-char-seq) 

denedim ama

java.lang.IllegalArgumentException: No matching ctor found for class java.lang.String (NO_SOURCE_FILE:0) 
[Thrown class clojure.lang.Compiler$CompilerException] 

dize yapıcısı ilkel kömürü [] beklediğini çünkü bence atar yerine LazySeq arasında. Ondan sonra

(String. (into-array my-char-seq)) 

gibi bir şey denedik ama aynı durum atar. problem içine-dizi bir java.lang.Character [] dönen olduğunu yerine ilkel char [] taşımaktadır. Bu aslında Temelde ben ASCII karakterleri temsil eden ints bir seq sahip bu

(map #(char (Integer. %)) seq-of-ascii-ints) 

gibi benim karakterim dizisini üretmek çünkü sinir bozucu; 65 = A vb. Gördüğünüz gibi ilkel tip zorlama işlevini (char x) kullanın. Bunun anlamı nedir

benim haritası işlevi ilkel kömürü ama genel java.lang.Character nesneyi dönüyor Clojure haritası fonksiyonunu dönüyor olmasıdır.

cevap

İlgili konular