LlParseStringKeepNulls/ja
From Second Life Wiki
メインページ > LlParseStringKeepNulls > LlParseStringKeepNulls/ja
関数: list llParseStringKeepNulls( string src, list separators, list spacers );
separators および spacers を区切り文字列として src を切り分けたリストのlist値を返します。
| • string | src | – | 切り分け対象の文字列。 | |
| • list | separators | – | 区切り文字列。切り分け後、戻り値には含まれない。 | |
| • list | spacers | – | 区切り文字列。切り分け後、戻り値に要素として含まれる。 |
separators の要素は、戻り値のリストには入りません。
spacers の要素は、戻り値のリストにも要素として入ります。
区切り文字列が連続した場合、その間の空文字列分も、戻り値の要素になります。
仕様
戻り値で空文字列の要素が保持される点を除けば、llParseString2List と同じ動作をします。Null もしくは空の要素を含むリストを切り分ける場合に有用です。(それらを含めないと要素の配置やインデックスがずれてしまいます。)
llParseListKeepNulls("", ["~"], []) は [""] を返します。
警告
- 引数の separators と spacers はそれぞれ先頭 8 要素だけが有効です。
- separators と spacers の要素は全て string 型でなければいけません。それ以外のデータ型は無視されます。
- separators は spacers よりも優先的に扱われます。マッチングは src の先頭から開始されます。src のマッチング位置において、separators の各要素、次いで spacers の各要素とマッチングが行なわれ、それから次のマッチング位置へ移動します。
- separators と spacers で要素の重複があっても、動作に支障はありません。
- 戻り値の要素は全て string 型です。他のデータ型として扱うならば llList2String で明示的に型キャストしてください。llList2* 関数による暗黙の型キャストをあてにしないでください。(vector 型、rotation 型では期待通りの変換結果が得られない。)
- 戻り値を直接処理するのでないならば、戻り値を必ず変数へ格納してください。
例
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,"><") + ">"); } }
部分的な利用
spacers や separators で 8 個以上の要素を扱う例:
| • | ParseString2List | – | llParseString2List および llParseStringKeepNulls と全く同じ処理を行なう関数 | |
| • | separateWords | – | 追加の前提条件を除けば llParseString2List と全く同じ処理を行なう関数。 |
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。

