LlParseStringKeepNulls/ja
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
仕様
戻り値で空文字列の要素が保持される点を除けば、llParseString2List と同じ動作をします。Null もしくは空の要素を含む (そしてその空要素をを取り除くとデータの配置や要素のインデックスがぐちゃぐちゃになる) リストを切り分ける場合に有用です。
llParseStringKeepNulls("", ["~"], []) は [""] を返します。
警告
- 引数の 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,"><") + ">");
}
}
便利なスニペット
separator/spacer の数の制限を回避するか、非常に大きなものにする代替関数
• | ParseString2List | – | llParseString2List および llParseStringKeepNulls と全く同じ処理を行う関数 | |
• | separateWords | – | 追加の前提条件を守れば、 llParseString2List と全く同じ処理を行う関数。 |
関連項目
関数
• | llParseString2List | |||
• | llDumpList2String | |||
• | llCSV2List | |||
• | llList2CSV |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。