2009-11-06 26 views
46

だが、私は文字列にこれを変換することができますどのよう文字のLazySeqをClojureの文字列に変換するにはどうすればよいですか?

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

ようjava.lang.CharacterのLazySeqがあるとしましょうか?私は明白な

(String. my-char-seq) 

を試みたが、それはStringコンストラクタがプリミティブのchar []代わりLazySeqのを期待するので、私が思う

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

をスローします。だから、私は何かを試しました

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

しかし、それは同じ例外をスローします。今のところ問題は、に配列char []の代わりにjava.lang.Character []を返すことです。私は実際には基本的に私は、ASCII文字を表すintの配列を持っているこの

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

ように私の文字列を生成するので、これは、イライラさせられます。 65 = Aなど。プリミティブ型強制関数(char x)を明示的に使用していることがわかります。これが何を意味するのか

は私のマップ機能がプリミティブ文字が、全体的なjava.lang.Characterのオブジェクトを返すClojureのマップ機能を返しているということです。

答えて

関連する問題