Difference between revisions of "LlParseString2List/ja"
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m (カテゴリ変更) |
Mako Nozaki (talk | contribs) m (Undo revision 851922 by Mako Nozaki (Talk)) |
||
Line 74: | Line 74: | ||
|negative_index | |negative_index | ||
|sort=ParseString2List | |sort=ParseString2List | ||
|cat1=List | |cat1=List | ||
|cat2=String | |cat2=String | ||
|cat3=Data Conversion | |cat3=Data Conversion | ||
|cat4 | |cat4 | ||
}} | }} |
Revision as of 05:24, 12 April 2010
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: list llParseString2List( string src, list separators, list spacers );separators および spacers を区切り文字列として src を切り分けたリストを list で返します。
• string | src | – | 切り分け対象の文字列。 | |
• list | separators | – | 区切り文字列。切り分け後、戻り値には含まれない。 | |
• list | spacers | – | 区切り文字列。切り分け後、戻り値に要素として含まれる。 |
separators の要素は、戻り値のリストには入りません。
spacers の要素は、戻り値のリストにも要素として入ります。
区切り文字列が連続した場合、その間の空文字列分は、戻り値の要素になりません。
警告
- 戻り値のリストでは、空文字列の要素 (spacer や separator が隣接したり、src の先頭・末尾にあった場合に作られ得る) は全て削除されます。
- (例えばリストの並びを保持したい等) 空文字列の要素を敢えて保持したい場合は、代わりに llParseStringKeepNulls を使ってください。
- 引数の separators と spacers はそれぞれ先頭 8 要素だけが有効です。それを超えた分は無視されます。(これが問題になる場合は、以下の Useful Snippets の項を参照してください。)
- separators と spacers の要素は全て string 型でなければいけません。それ以外のデータ型は無視されます。
- separators は spacers よりも優先的に扱われます。マッチングは src の先頭から開始されます。src のマッチング位置において、separators の各要素、次いで spacers の各要素とマッチングが行なわれ、それから次のマッチング位置へ移動します。
- separators と spacers で要素の重複があっても、動作に支障はありません。
- 戻り値の要素は全て string 型です。他のデータ型として扱うならば llList2String で明示的に型キャストしてください。llList2* 関数による暗黙の型キャストをあてにしないでください。(vector 型、rotation 型では期待通りの変換結果が得られない。)
- 戻り値を直接処理するのでないならば、戻り値を必ず変数へ格納してください。
サンプル
<lsl>default {
state_entry() { // 以下のように出力されます: // <A><crazy><fox><.><Saw><the><moon><.><.> string my_string = "A crazy fox. Saw the moon.."; list my_list = llParseString2List(my_string,[" "],["."]); llOwnerSay("<" + llDumpList2String(my_list,"><") + ">"); // 以下のように出力されます: // <A><crazy><fox><.><><><Saw><the><moon><.><><.><> my_list = llParseStringKeepNulls(my_string,[" "],["."]); llOwnerSay("<" + llDumpList2String(my_list,"><") + ">"); }}</lsl>
便利なスニペット
spacers や separators で 8 個以上の要素を扱う例:
• | ParseString2List | – | llParseString2List および llParseStringKeepNulls と全く同じ処理を行なう関数 | |
• | separateWords | – | 追加の前提条件を除けば llParseString2List と全く同じ処理を行なう関数。 |
注意点
separator は、文字列をそこで区切るものであり、区切った結果には含まれません。
一方 spacer は、文字列をそこで区切るものであり、区切った結果に含まれます。
<lsl>string myString = "What Are You Looking At?";
llSay(0, (string)llParseString2List(myString, ["W", "A", "Y", "L", "A"], [] )); //出力: hat re ou ooking t?
llSay(0, (string)llParseString2List(myString, [], ["W", "A", "Y", "L", "A"] ) ); //出力: What Are You Looking At?</lsl>
separators の要素に " " を使うと、英文は単語に切り分けられます。
spacers に何も指定したくない場合は []
としてください。
separators や spacers の空文字列の要素は無視されます。
関連項目
関数
• | llParseStringKeepNulls | |||
• | llDumpList2String | |||
• | llCSV2List | |||
• | llList2CSV |
記事
• | Separate Words | |||
• | LSL-Editor/Bugs |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。