2009-11-06 5 views
46

어떻게 문자열이 변환 할 수의 난이 LazySeq어떻게 LazySeq 문자를 Clojure의 문자열로 변환 할 수 있습니까?

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

같은 java.lang.Character의의 있다고 가정 해 봅시다? 나는 명백한

(String. my-char-seq) 

을 시도했지만 그것은

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

문자열 생성자가 원시적 문자 []를 기대하기 때문에 내 생각을 던져 대신 LazySeq의. 그래서 나는 같은 것을 시도했습니다.

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

그러나 같은 예외를 던집니다. 문제는 이제 에 배열char [] 대신 java.lang.Character []을 반환한다는 것입니다. 이처럼 실제로 문자 시퀀스를 생성하기 때문에 이것은 실망 스럽습니다.

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

기본적으로 ASCII 문자를 나타내는 int seq가 있습니다. 65 = A 등 내가 원시 타입 강제 변환 함수 (char x)을 명시 적으로 사용하는 것을 볼 수 있습니다. 이 의미

지도 기능은 원시 문자하지만 전반적으로 java.lang.Character의 객체를 반환하는 Clojure의 지도 기능을 반환하는 것입니다.

답변

관련 문제