Java / clojure : 여러 문자 구분 기호 및 구분 기호 유지java


Answers

(defn split-it [s d]
  (interpose d (str/split s (re-pattern d))))

(split-it "test:test:test" ":")
=> ("test" ":" "test" ":" "test")

(split-it "::test::test::" "::")
=> ("" "::" "test" "::" "test")
Question

나는 모든 Java 클래스와 상호 작용할 수있는 clojure 프로젝트에서 작업하고 있으므로 내 질문에 대한 대답은 java 또는 clojure 일 수 있습니다.

기본적으로 나는 주어진 구분 기호 (하나 이상의 문자가 될 것임)를 기반으로 문자열을 구성 요소로 분할 할 수 있어야하지만 동시에 구분 기호를 유지해야합니다.

예 :

splitting "test:test:test" on ":"  => [ "test" ":" "test" ":" "test" ]
splitting "::test::test::" on "::" => [ "::" "test" "::" "test" "::" ]

클로저는 내가 clojure의 clojure.string/split 사용하여왔다. clojure.string/split 하지만, 실제로 구분 문자를 리턴하지는 않는다. 두 번째 가장 가까운 것은 구분 기호를 반환하지만 여러 문자 구분 기호를 허용하지 않는 StringTokenizer를 사용하는 것입니다.

누구든지 다른 문자열을 문자 시퀀스로 분리하고 이상한 문자를 줄이는 방법을 알고 있습니까?