逆引きclojure文字列の部分(途中)
合っているのか自信がないのでblogに貼るだけにしておく
今のところ
文字のリスト(sequence)から文字列を作成する上手い方法が見つかっていない。
暫定的な対応策は以下
(defn cs-to-str [cs] (String. #^"[C" (into-array Character/TYPE cs)))
文字列を結合する
(str "foo" "bar") ; => "foobar"
大文字・小文字に揃える
(. "Hi, Clojurian" toUpperCase) ; => "HI, CLOJURIAN" (. "Hi, Clojurian" toLowerCase) ; => "hi, clojurian"
大文字と小文字を入れ替える
(defn swap-case [str] (cs-to-str (map #(cond (Character/isUpperCase %) (Character/toLowerCase %) :else (Character/toUpperCase %)) str))) (swap-case "Hi, Clojurian") ; => "hI, cLOJURIAN"
複数行の文字列を作成する
"abc\ndef\nghi"
部分文字列を取り出す
(subs "0123456" 2 5) ; => "234"
文字列を一文字づつ処理する
(doseq [c "abc"] (pr c))
文字列を一行づつ処理する
(use '[clojure.contrib.duck-streams :only (read-lines)]) (doseq [line (read-lines (java.io.StringReader. "abc\ndef\nghi"))] (println line))
文字列の先頭・末尾の空白を削除する
(cs-to-str (drop-while #(= \space %) " abc")) (cs-to-str (reverse (drop-while #(= \space %) (reverse "abc "))))
文字列を数値に変換する
(Integer/parseInt "0123") ; => 123
文字列を URI エンコードする
(java.net.URLEncoder/encode "逆引き Clojure") ; => ; => "%E9%80%86%E5%BC%95%E3%81%8D+Clojure" (java.net.URLDecoder/decode "%E9%80%86%E5%BC%95%E3%81%8D+Clojure") ; => "逆引き Clojure"