Gimp2.6で使える関数
- 文字列 -

 一覧にある関数はとりあえず、使えそうな関数です。
 現在のところ、確認は、2.6.10で行っています。


文字列操作
string? ( string? target )boolean
文字列判別

targetが文字列ならば #t 、文字列でなければ #f を返す。

make-string ( make-string kinteger [charchar])string
同一文字の連続からなる文字列

k個のcharからなる文字列を返す。charを省略すると指定個数のスペース。

>(make-string 5 #/a)
"aaaaa"
 charはchar型で特殊な書き方をするので注意。

string ( string [charchar]* )string
文字並びから作る文字列

引数の文字を連結した文字列を返す。

>(string #\A #\p #\p #\l #\e)
"Apple"

string-length ( string-length strchar )integer
文字列の長さ

文字数を返却する。漢字は1文字として数える。

>(string-length "abc")
3
>(string-length "アルゴ算法堂")
6
string-ref ( string-ref strstring kinteger)char
指定位置の文字

strの先頭からk番目の文字を返却。先頭の文字は0番目とする。位置指定(k)に文字が無い場合には、例外エラーとなる。漢字は一文字と数える。

>(string-ref "abc" 1 )
#\b
>(string (string-ref "アルゴ算法堂" 1))
"ル"

(string-ref "アルゴ算法堂" 1)だけだと結果が見えないので、stringを使った。

string-set! ( string-set! strstring kinteger charchar)string
指定位置の文字を差し替え

文字列strのk番目の文字をcharに差し替える。位置は先頭が0番目。指定位置に文字が無い場合はエラー。漢字は一文字で数える。

引数の文字列を直接書き換えるので、プログラム中に直接書いたような文字列(immutable)は扱えない。

>(string-set! "abcd" 1 #\x)
	↑errorとなる
>(string-set! (string #\a #\b #\c #\d) 1 #\x)
"axcd"
>(define mystr (string-copy "alpha"))
mystr
>(string-set! mystr 1 #\x)
"axpha"
>mystr
"axpha"
substring ( substring strstring startinteger [endinteger])string
部分文字列

strのstart番目からend番目の一つ前までの文字列を返す。endが省略された場合は、endは文字列末。start、endは文字列先頭を0番目として数える。漢字は1文字とする。不正な位置が指定されるとエラーとなる

>(substring "abcdefg" 1 3 )
"bc"
>(substring "アルゴ算法堂" 3 )
"算法堂"
string-copy ( string-copy strstring)string
文字列のコピー

文字列を複写して新たな文字列として返す。immutableな文字列をmutableにできる。

string-fill! ( string-fill! deststring charchar)戻り値
文字列を指定の文字で埋め尽くす。

文字列destのすべての文字をcharで置き換える。
引数の文字列を直接書き換えるので、プログラム中に直接書いたような文字列(immutable)は扱えない。

>(string-fill! (string-copy "apple") #\x)
"xxxxx"
>(define mystr (string-copy "apple"))
mystr
>(string-fill! mystr #\x)
"xxxxx"
>mystr
"xxxxx"
string-append ( string-append [string]* ) string
文字列連結

引数(0個以上)を順番に連結した文字列を返す。

>(string-append "アルゴ" "算法堂" "です")
"アルゴ算法堂です"
string->list ( string->list strstring)list of char
文字列を分解してリストに

文字列strの構成文字からなるリストを返却する。

>(string->list "alpha")
(#\a #\l #\p #\h #\a)
list->string ( list->string lstlist of char)string
文字並びリストを文字列に

文字だけで構成されたリストlstの文字を連結して文字列を返却する。
>(list->string (list #\A #\p #\p #\l #\e))
"Apple"

string=? ( string=? str1string {str2string}+ )boolean
文字列比較(等しい)

引数の文字列すべてが等しければ #t。

以降の文字列比較関数は、すべての隣り合った引数に指定の大小比較がすべて成り立てば #t となる。
残念ながら、引数が二つの場合だけ正常に動作する。

string<? ( string<? str1string {str2string}+ )boolean
文字列比較(小さい)

残念ながら、引数が二つの場合だけ正常に動作する。

string<=? ( string<=? str1string {str2string}+ )boolean
文字列比較(大きくない)

残念ながら、引数が二つの場合だけ正常に動作する。

string>? ( string>? str1string {str2string}+ )boolean
文字列比較(大きい)

残念ながら、引数が二つの場合だけ正常に動作する。

string>=? ( string>=? str1string {str2string}+ )boolean
文字列比較(小さくない)

残念ながら、引数が二つの場合だけ正常に動作する。

string-ci=? ( string-ci=? str1string {str2string}+ )boolean
大文字小文字を無視した文字列比較(等しい)

残念ながら、引数が二つの場合だけ正常に動作する。

string-ci<? ( string-ci<? str1string {str2string}+ )boolean
大文字小文字を無視した文字列比較(小さい)

残念ながら、引数が二つの場合だけ正常に動作する。

string-ci<=? ( string-ci<=? str1string {str2string}+ )boolean
大文字小文字を無視した文字列比較(大きくない)

残念ながら、引数が二つの場合だけ正常に動作する。

string-ci>? ( string-ci>? str1string {str2string}+ )boolean
大文字小文字を無視した文字列比較(大きい)

残念ながら、引数が二つの場合だけ正常に動作する。

string-ci>=? ( string-ci>=? str1string {str2string}+ )boolean
大文字小文字を無視した文字列比較(小さくない)

残念ながら、引数が二つの場合だけ正常に動作する。


アルゴ算法堂へ戻る