LlStringTrim/ja
From Second Life Wiki
メインページ > LlStringTrim > LlStringTrim/ja
| Constant | Description | |
|---|---|---|
| STRING_TRIM_HEAD | 0x1 | 先頭からスペースをトリミングする。 |
| STRING_TRIM_TAIL | 0x2 | 末尾からスペースをトリミングする。 |
| STRING_TRIM | 0x3 | 先頭と末尾からスペースをトリミングする。 |
例
チャットやノートカードで、ユーザから自由入力のメッセージを受け取る際、常にそれを以下のようにしてトリミングするのは良い考えです:
llStringTrim("ユーザの入力内容", STRING_TRIM);
以下の例は、文字列の先頭と末尾からトリミングされたスペースの文字数を返します。(実用的ではありませんが、関数の動作例として。)
default { state_entry() { llListen(4, "", llGetOwner(), ""); } on_rez(integer a) { llResetScript(); } listen(integer chan, string name, key id, string msg) { //先頭と末尾に単一/二重引用符があったら、取り除く。 if(~llSubStringIndex("'\"", llGetSubString(msg,0,0))) if(llGetSubString(msg,-1,-1) == llGetSubString(msg,0,0)) msg = llDeleteSubString(msg, -1, 0); //文字列長を調べる。 integer length = llStringLength(msg); //トリミングする。(不必要な変数代入があるが、読みやすさに配慮したため。) string trim_left = llStringTrim(msg, STRING_TRIM_HEAD); string trim_right = llStringTrim(msg, STRING_TRIM_HEAD); string trim = llStringTrim(msg, STRING_TRIM); //結果を出力する。 llOwnerSay("Initial length = " + (string)length + "\nLeading Spaces = " + (string)(length - llStringLength(trim_left))+ "\nTrailing Spaces = " + (string)(length - llStringLength(trim_right))+ "\nTrimmed Message = \"" + trim + "\""); } }
ノート
先頭や末尾にスペースがあろうと、この関数によって文字列の実質的な内容は損なわれません。しかしこれは、文字列の中にある余計なスペース (例えば誤入力された連続スペースなど) には手を加えないという事でもあります。
以下の例は、連続したスペースと、先頭/末尾のスペースを削除します。
llDumpList2String(llParseString2List(src, [" "], []), " "); //動作しますが、メモリを多く消費します。
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。

