Shammer's Philosophy

My private adversaria

Lisp String Handling-Version20120120

Lisp String Handling-Version20120117 - Shammerismから間もないが、subseq や position、intern を入れ忘れていたので追記。

大文字にする

? (string-upcase "abc")
"ABC"
?

小文字にする

? (string-downcase "ABC")
"abc"
?

連結する

? (concatenate 'string "abc" "def")
"abcdef"
?

文字列を一文字ずつのリストに分割

? (coerce "abcdefg" 'list)
(#\a #\b #\c #\d #\e #\f #\g)
?

特定の一文字を削除

? (remove #\a "aabbccddeeffgg")
"bbccddeeffgg"
?

trimming する

? (string-trim " " "   abc   ")
"abc"
? (string-trim "a" "aabbaacc")
"bbaacc"
?

文字列の一部分を取り出す

? (defparameter *string* "abcdefghijklmnopqrstuvwxyz")
*STRING*
? (subseq *string* 10)
"klmnopqrstuvwxyz"
? (subseq *string* 0 10)
"abcdefghij"
? (subseq *string* 5 10)
"fghij"
?

文字列が特定の文字を含んでいるかを確認

? (defparameter *string* "abcdefghijklmnopqrstuvwxyz")
*STRING*
? (position #\a *string*)
0
? (position #\A *string*)
NIL
? (position #\x *string*)
23
?

文字列が特定の文字列を含んでいるかを確認

? (defparameter *string* "abcdefghijklmnopqrstuvwxyz")
*STRING*
? (search "hij" *string*)
7
? (search "kkk" *string*)
NIL
? (search "xyz" *string*)
23
? (search "abc" *string*)
0
?

文字列をシンボルに変換する

? (intern "foo")
|foo|
NIL
? (intern "BAR")
BAR
NIL
? (intern "Baz")
|Baz|
NIL
?