Previous: Functions and Variables for characters, Up: stringproc [Contents][Index]
もしobjが文字列なら、trueを返します。
例はイントロダクションを参照してください。
stringのn番目の文字を返します。 stringの一番目の文字はn = 1で返されます。
(%i1) charat("Lisp",1);
(%o1)                           L
stringの文字すべてのリストを返します。
(%i1) charlist("Lisp");
(%o1)                     [L, i, s, p]
(%i2) %[1];
(%o2)                           L
文字列strをMaxima式としてパースし、評価します。
文字列strは終端子(ドル記号$またはセミコロン;)
を持つかもしれませんし持たないかもしれません。
もし複数あるなら、最初の式だけがパースされ、評価されます。
もしstrが文字列でないならエラーが出力されます。
例:
(%i1) eval_string ("foo: 42; bar: foo^2 + baz");
(%o1)                       42
(%i2) eval_string ("(foo: 42, bar: foo^2 + baz)");
(%o2)                   baz + 1764
parse_stringも参照してください。
文字列strをMaxima式としてパースします(評価しません)。
文字列strは終端子(ドル記号$またはセミコロン;)
を持つかもしれませんし持たないかもしれません。
もし複数あるなら、最初の式だけがパースされ、評価されます。
もしstrが文字列でないならエラーが出力されます。
例:
(%i1) parse_string ("foo: 42; bar: foo^2 + baz");
(%o1)                    foo : 42
(%i2) parse_string ("(foo: 42, bar: foo^2 + baz)");
                                   2
(%o2)          (foo : 42, bar : foo  + baz)
eval_stringも参照してください。
stringのコピーを新しい文字列として返します。
supcaseと同様ですが、大文字が小文字に変換されます。
もしstring_1とstring_2が同じ長さで、同じ文字を含むなら、
trueを返します。
sequalと同様ですが、文字の大小を無視します。
sexplodeは関数charlistの別名です。
simplodeは式のリストを取り、それらを結合して文字列にします。
もしデリミタdelimが指定されないなら、
simplodeはデリミタを使いません。
delimは任意の文字列を取り得ます。
(%i1) simplode(["xx[",3,"]:",expand((x+y)^3)]);
(%o1)             xx[3]:y^3+3*x*y^2+3*x^2*y+x^3
(%i2) simplode( sexplode("stars")," * " );
(%o2)                   s * t * a * r * s
(%i3) simplode( ["One","more","coffee."]," " );
(%o3)                   One more coffee.
substring (string, 1, pos - 1)と
文字列seq、substring (string, pos)
の結合となる文字列を返します。
stringの一番目の文字は位置1にあることに注意してください。
(%i1) s: "A submarine."$
(%i2) concat( substring(s,1,3),"yellow ",substring(s,3) );
(%o2)                  A yellow submarine.
(%i3) sinsert("hollow ",s,3);
(%o3)                  A hollow submarine.
位置startからendまでのそれぞれの文字を逆順にすることを除いて stringを返します。 もしendが与えられないなら、 startから stringの終わりまでのすべての文字列が置き換えられます。
(%i1) sinvertcase("sInvertCase");
(%o1)                      SiNVERTcASE
stringの中の文字の数を返します。
num個の文字charを持つ新しい文字列を返します。
(%i1) smake(3,"w"); (%o1) www
string_1とstring_2が異なるstring_1の最初の文字の位置、または
falseを返します。
マッチングのデフォルトのテスト関数はsequalです。
もしsmismatchが文字の大小を無視なければいけないなら、
テストとしてsequalignoreを使ってください。
(%i1) smismatch("seven","seventh");
(%o1)                           6
stringのすべてのトークンのリストを返します。
それぞれのトークンはパースされていない文字列です。
splitはdelimをデリミタとして使います。
もしdelimが与えられないなら、
スペース文字がデフォルトのデリミタです。
multipleはデフォルトでtrueのブーリアン変数です。
重複デリミタが1つとして読まれます。
これは、
もしタブが複数スペース文字として保存されているなら、
役立ちます。
もしmultipleがfalseに設定されるなら、
それぞれのデリミタが有効です。
(%i1) split("1.2   2.3   3.4   4.5");
(%o1)                 [1.2, 2.3, 3.4, 4.5]
(%i2) split("first;;third;fourth",";",false);
(%o2)               [first, , third, fourth]
stringの中で、charとマッチする最初の文字の位置を返します。
stringの一番目の文字は位置1にあります。
文字の大小を無視した文字のマッチに関しては,
ssearchを参照してください。
string同様文字列を返しますが、
seqとマッチする部分文字列すべてなしに返します。
マッチのデフォルトのテスト関数はsequalです。
もしsremoveがseqを検索する間文字の大小を無視しなければいけないなら、
テストとしてsequalignoreを使ってください。
探索を限定するにはstartとendを使ってください。
stringの一番目の文字は位置1にあることに注意してください。
(%i1) sremove("n't","I don't like coffee.");
(%o1)                   I do like coffee.
(%i2) sremove ("DO ",%,'sequalignore);
(%o2)                    I like coffee.
seqとマッチする最初の文字列だけが削除されることを除いて、
sremove同様です。
stringの文字すべてが逆順の文字列を返します。
文字列seqとマッチするstringの最初の部分文字列の位置を返します。
マッチのためのデフォルトのテスト関数はsequalです。
もしssearchが文字の大小を無視しなければいけないなら、
テストとしてsequalignoreを使ってください。
検索を限定するには、startとendを使ってください。
stringの一番目の文字は位置1にあることに注意してください。
(%i1) ssearch("~s","~{~S ~}~%",'sequalignore);
(%o1)                                  4
test (c, d)がfalse、かつ、test (d, c)がtrueであるような2つの連続する文字cとdがないような順で
stringの文字すべてを含む文字列を返します。
ソートのためのデフォルトのテスト関数はclesspです。
テスト関数一式は{clessp, clesspignore, cgreaterp, cgreaterpignore, cequal, cequalignore}です。
(%i1) ssort("I don't like Mondays.");
(%o1)                    '.IMaddeiklnnoosty
(%i2) ssort("I don't like Mondays.",'cgreaterpignore);
(%o2)                 ytsoonnMlkIiedda.'   
stringの中のoldにマッチするすべての部分文字列を
newで置き換えた文字列を返します。
oldとnewは同じ長さである必要はありません。
マッチのためのデフォルトのテスト関数はsequalです。
もしssubstがoldを検索する間大文字小文字を無視すべきなら、
テストとしてsequalignoreを使ってください。
検索を制限するには、startとendを使ってください。
stringの一番目の文字は位置1にあることに注意してください。
(%i1) ssubst("like","hate","I hate Thai food. I hate green tea.");
(%o1)          I like Thai food. I like green tea.
(%i2) ssubst("Indian","thai",%,'sequalignore,8,12);
(%o2)         I like Indian food. I like green tea.
oldとマッチする最初の部分文字列だけを置き換えることを除いて、
substと同様です。
stringの両端からseqに現れるすべての文字を除いた文字列を返します。
(%i1) "/* comment */"$
(%i2) strim(" /*",%);
(%o2)                        comment
(%i3) slength(%);
(%o3)                           7
stringの左端だけトリムすることを除いて
strimと同様です。
stringの右端だけトリムすることを除いて
strimと同様です。
位置startで始まり位置endで終わる stringの部分文字列を返します。 位置endの文字は含まれません。 もしendが与えられないなら、部分文字列は文字列の残りを含みます。 stringの一番目の文字は位置1にあることに注意してください。
(%i1) substring("substring",4);
(%o1)                        string
(%i2) substring(%,4,6);
(%o2)                          in
stringの位置startからendまでの小文字を対応する大文字に置き換えた 文字列を返します。 もしendが与えられないなら、 startからstringの終わりまでのすべての小文字が置き換えられます。
(%i1) supcase("english",1,2);
(%o1)                        English
stringから抽出されたトークンのリストを返します。
トークンは、文字があるテスト関数を満たす部分文字列です。
もしテストが与えられないなら、
constituentがデフォルトテストとして使われます。
{constituent, alphacharp, digitcharp, lowercasep, uppercasep, charp, characterp, alphanumericp}はテスト関数一式です。
(The Lisp-version of 
tokensのLispバージョンはPaul Grahamによって書かれました。 ANSI Common Lisp, 1996, page 67.)
(%i1) tokens("24 October 2005");
(%o1)                  [24, October, 2005]
(%i2) tokens("05-10-24",'digitcharp);
(%o2)                     [05, 10, 24]
(%i3) map(parse_string,%);
(%o3)                      [5, 10, 24]
Previous: Functions and Variables for characters, Up: stringproc [Contents][Index]