Difference between revisions of "LlGetSubString/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m (カテゴリ変更) |
|||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{LSL_Function/negative index/ja|true|start|end}}{{LSL_Function/ja | {{LSL_Function/negative index/ja|true|start|end}}{{LSL_Function/ja | ||
|func_id=94|func_sleep=0.0|func_energy=10.0 | |func_id=94|func_sleep=0.0|func_energy=10.0 | ||
|func=llGetSubString | |func=llGetSubString|p1_type=string|p1_name=src|p2_type=integer|p2_name=start|p3_type=integer|p3_name=end | ||
|func_footnote | |func_footnote | ||
|func_desc | |func_desc='''src''' の '''start''' 文字目から '''end''' 文字目までの範囲の文字列を string で返します。 | ||
|spec | |spec | ||
|caveats | |caveats | ||
|constants | |constants | ||
|examples= | |examples= | ||
< | <source lang="lsl2"> | ||
default | default | ||
{ | { | ||
Line 26: | Line 22: | ||
} | } | ||
} | } | ||
</ | </source> | ||
|helpers | |helpers | ||
|also_functions= | |also_functions= | ||
Line 38: | Line 34: | ||
文字列の長さを確かめたい場合は {{LSLG/ja|llStringLength}} を使ってください。 | 文字列の長さを確かめたい場合は {{LSLG/ja|llStringLength}} を使ってください。 | ||
|sort=GetSubString | |sort=GetSubString | ||
|cat1=String | |cat1=String | ||
|cat2 | |cat2 | ||
|cat3 | |cat3 | ||
|cat4 | |cat4 | ||
}} | }} |
Latest revision as of 14:35, 25 February 2016
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: llGetSubString( string src, integer start, integer end );仕様
インデックス | 正 | 負 |
---|---|---|
先頭 | 0 | -length |
末尾 | length - 1 | -1 |
インデックス
- 正のインデックスは先頭から数えます。先頭の要素は 0、末尾の要素は (length - 1) のインデックスを持ちます。
- 負のインデックスは末尾から数えます。先頭の要素は -length、末尾の要素は -1 のインデックスを持ちます。
警告
- start あるいは end が正常なインデックス範囲を外れていても、スクリプトはエラー表示を出さずに処理を続けます。
サンプル
default
{
state_entry()
{
string word = "Hello!";
llOwnerSay(llGetSubString(word, 0, 0));
// Object: H と表示されます。
llOwnerSay(llGetSubString(word, -1, -1));
// Object: ! と表示されます。
llOwnerSay(llGetSubString(word, 2, 3));
// Object: ll と表示されます。
}
}
注意点
範囲とインデックス
インデックス範囲の説明を容易にするため、まず全てのインデックスを正 (プラス) に変換してください。負のインデックスは先頭でなく末尾から数えたもので、負のインデックスは全て対応する正のインデックスを (範囲に収まる限りは) 持ちます。末尾 (最後のインデックス) を過ぎた正のインデックス、先頭 (最初のインデックス) より前の負のインデックスは有効で、その結果は予測可能かつ信頼できます。すなわち、その要素はあたかも存在するかのように扱われますが、それは出力されるまでの間に限ります。
- start <= end の場合、範囲は start から end となります。 [start, end]
- start > end の場合、範囲は 0 から end、および start から -1 となります。 [0, end] + [start, -1]
- end が先頭より前の負のインデックスの場合、範囲は [start, -1] となります。
- end が末尾より後の正のインデックスの場合、範囲は [0, end] となります。
- start と end がいずれも有効な範囲から外れていた場合、関数は処理すべき範囲を持たないことになります。(事実上、関数の呼び出しは無駄になります。)
詳細は負のインデックスを参照してください。 インデックスはゼロから開始されます。従って start, end ともに 0 を指定した場合、最初の一文字だけが戻り値になります。負のインデックスは、末尾から先頭に向かって数えてゆきます。従って -1 は末尾の一文字を指すのに便利です。インデックスは正/負を取り混ぜて使えます。従って例えば位置指定の start, end にそれぞれ 0, -1 を指定した場合、文字列全体が戻り値になります。
文字列の長さを確かめたい場合は llStringLength を使ってください。
関連項目
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。