Strings and characters in Clojure they have no surprises. They map respectively to
java.lang.Character. Both, strings and characters they evaluate to themselves.
"This is a string" ;= "This is a string" (type "This is a string") ;= java.lang.String "Strings in Clojure can be multi lines as well!!" ;= "Strings in Clojure \n can be multi lines \n as well!!" \a ; this is the character 'a' \A ; this is the character 'A' \\ ; this is the character '\' \u0041 ; this is unicode for 'A' \tab ; this is the tab character \newline ; this is the newline character \space ; this is the space character \a ;= \a (type \a) ;= java.lang.Character
Since they map to their Java’s native type you can use all java.lang.String methods
(.toUpperCase "This is a string") ;= "THIS IS A STRING" (seq (.split "This is a string" " ")) ;= ("This" "is" "a" "string") ;; a string is a sequence of characters (seq "This is a string") ;= (\T \h \i \s \space \i \s \space \a \space \s \t \r \i \n \g)
There are a number of Clojure functions available to manipulate Strings:
;; to create a string (str 123) ;= "123" (str 1 "and" 3) ;= "1and3" ;; basically str calls .toString() ;; on the given arguments (str (new java.util.Date)) ;= "Sat Mar 23 02:27:32 GMT 2013" ;; check if the argument is a string (string? "a string") ;= true (string? 1) ;= false