文字列
文字列演算子¶
この節では、引数が文字列である演算子をリストアップします。また、他の値から文字列を生成する演算子も扱います。
基本的な文字列演算子¶
文字列の結合: <string1> + <string2>¶
説明: + 演算子はひとつの文字列に他のものを付け加えます。その結果は文字列になります。引数のうち少なくとも一つが文字列であれば、他の引数は自動的に文字列に変換されます。
例:
| 式 | 結果 |
|---|---|
"Cindy"+"Script" |
"CindyScript" |
"4たす3は "+(4+3) |
"4たす3は 7" |
""+(4+3) |
"7". |
参照: + 演算子は数値の加法にも用いられます。 算術演算子を参照してください。
文字列への変換: text(<expr>)¶
説明: この演算子は
文字列の長さ: length(<string>)¶
説明: この演算子は、文字列の文字数を返します。
例: length("CindyScript") の結果は 11 です。
参照: リスト
文字列の抜きだし: substring(<string>,<int1>,<int2>)¶
説明: この演算子では <string> の <int1> 文字目の次から <int2>文字目までの文字列を抜き出します。
例: substring("abcdefg",3,6) は "def"を返します。
文字列の検索: indexof(<string1>,<string2>)¶
説明: この演算子は、文字列 <string2> が <string1>の中にあるかどうかを検索し、最初に見つかった位置を返します。もし <string2> が <string1>の中になければ 0 を返します。
| 式 | 結果 |
|---|---|
indexof("CindyScript","i") |
2 |
indexof("CindyScript","y") |
5 |
indexof("CindyScript","z") |
0 |
文字列の検索: indexof(<string1>,<string2>,<int>)¶
説明: この演算子は、文字列 <string2> が <string1> の <string2> が <string1> の 0 を返します。
| 式 | 結果 |
|---|---|
indexof("CindyScript","i",1) |
2 |
indexof("CindyScript","i",3) |
9 |
indexof("CindyScript","i",10) |
0 |
高度な文字列演算子¶
文字列の分解: tokenize(<string>,<expr>)¶
説明: この演算子は、入力された文字列を解析するのに大変有効です。引数 <string>の部分文字列のリストを作成します。2番目の引数 <expr> は、文字列か、文字列のリストでなければなりません。もし <expr> が文字列であれば、<string>からこの文字列を検索します。この文字列は <string> を分解するときの標識となります。
もし <string> の部分文字列のリストを生成します。
標識が存在しない場合、間違った結果を返すことがあります。その場合には修飾子を使います。
例:
| 式 | 結果 |
|---|---|
tokenize("one:two--three:four",":") |
["one", "two--three", "four"] |
tokenize("one:two--three:four","-") |
["one:two", "", "three:four"] |
tokenize("one:two--three:four","--") |
["one:two", "three:four"] |
tokenize("one:two--three:four",["-",":"]) |
[["one", "two"], [], ["three", "four"]] |
tokenize("one:two--three:four",["--",":"]) |
[["one", "two"], ["three", "four"]] |
tokenize( "77777777777777777",":")")} |
[77777777777777776] |
tokenize( "77777777777777777",":",autoconvert->false)")} |
[77777777777777777] |
文字列の置換: replace(<string1>,<string2>,<string3>)¶
説明: この演算子は、
例:
| 式 | 結果 |
|---|---|
replace("one:two--three:four","o","XXX") |
"XXXne:twXXX--three:fXXXur" |
replace("F","F","F+F") |
"F+F" |
replace("F+F","F","F+F") |
"F+F+F+F" |
文字列の置換: replace(<string>,<list>)¶
説明: この演算子は前のものとよく似ています。 <list> は <string>に対して、置き換えをする文字列の組合せからなるリストです。
例:
| 式 | 結果 |
|---|---|
replace("XYX",[["X","one"],["Y","two"]]) |
"onetwoone" |
文字列の解析: parse(<string>)¶
説明: この演算子は、文字列の内容を解析して、その結果を評価します。この演算子は、テキストフィールドから入力された文字列を処理するのに特に有効です。
例:
| 式 | 結果 |
|---|---|
parse("3+7") |
10 |
次のコードは、 f(x) をsin(x)+cos(x)で定義します。
文字列の解析: guess(<number>)¶
説明: この非常に強力な演算子については 特殊演算子の節で詳説します。それは浮動小数点で表された数を、高い精度でその浮動小数点数を生み出す数式に変えようとします。
例:
| 式 | 結果 |
|---|---|
guess(8.125) |
"65/8" |
guess(0.774596669241483) |
"sqrt(3/5)" |
参照: 計算
数を整形する: format(<number>,<int>)¶
説明: この演算子は、第1引数の数の小数点以下を、第2引数で指定された桁まで、文字列として整形します。最高14桁まで可能です。引数がリストの場合は、各要素に対して整形がなされます。
例:
| 式 | 結果 |
|---|---|
format(sqrt(2),4) |
"1.4142" |
format(pi,14) |
"3.14159265358979" |
format([sin(30°),cos(30°)],3) |
[0.5,0.866] |
注意: format命令は、出力としての整形を行なうだけです。整形された値は文字列として扱われますので計算はできません。次の例を見てください。
| 式 | 結果 |
|---|---|
format(sqrt(2),4)+format(sqrt(2),4) |
"1.41421.4142" |
文字列の比較と並べ替え¶
数と同様、文字列も順序付けができます。したがって、演算子 >, <, >=, <=, ==, != を使って比較ができます。これらの演算子については ブール演算子 を参照してください
文字の順序としては、辞書順を使います。たとえば、次のようになります。
"a"<"abd"<"abe"<"b"<"blue"<"blunt"<"xxx"
リストの並べ替え: sort(<list>)¶
リストの並べ替え: sort(<list>,<expr>)¶
リストの並べ替え: sort(<list>,<var>,<expr>)¶
説明: いくつかの並べ替え-演算子が文字列を含むリストを並べ替えるのに使えます。 並べ替えの順序は常に辞書順です。あるいは、文字列の長さのように、ユーザーが順序を定義することもできます。
例:
| 式 | 結果 |
|---|---|
sort(["one","two","three","four","five"]) |
["five","four","one","three","two"] |
sort(["one","two","three","four","five"],length(#)) |
["one","two","four","five","three"] |
参照: リスト
文字列中の文字へのアクセスと置き換え¶
指標演算子: <string>_<int>¶
説明: リストの項目にアクセスする挿入演算子 _ は、文字列内の特別な位置にある文字にアクセスするのにも使えます。この演算子で、文字を返したり、文字をセットしたりすることができます。
例:
| 式 | 結果 |
|---|---|
"CindyScript"_5 |
"y" |
"CindyScript"_12 |
_?_ |
次のコードでは、変数 a は "CinderellaScript" になります。