LlStringTrim/ja

From Second Life Wiki
< LlStringTrim
Revision as of 07:36, 10 April 2010 by Mako Nozaki (talk | contribs) (カテゴリ変更)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

要約

関数: string llStringTrim( string src, integer type );

src から、先頭および/あるいは末尾の空白 (スペース、タブ、ラインフィード) をトリミングした (取り除いた) 文字列を string で返します。

• string src
• integer type STRING_TRIM* フラグ

Constant Description
STRING_TRIM_HEAD 0x1 先頭からスペースをトリミングする。
STRING_TRIM_TAIL 0x2 末尾からスペースをトリミングする。
STRING_TRIM 0x3 先頭と末尾からスペースをトリミングする。

サンプル

チャットやノートカードで、ユーザから自由入力のメッセージを受け取る際、常にそれを以下のようにしてトリミングするのは良い考えです:

llStringTrim("ユーザの入力内容", STRING_TRIM);

以下の例は、文字列の先頭と末尾からトリミングされたスペースの文字数を返します。(実用的ではありませんが、関数の動作例として。) <lsl> 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 + "\"");
   }

}

</lsl>

注意点

先頭や末尾にスペースがあろうと、この関数によって文字列の実質的な内容は損なわれません。しかしこれは、文字列の中にある余計なスペース (例えば誤入力された連続スペースなど) には手を加えないという事でもあります。

以下の例は、連続したスペースと、先頭/末尾のスペースを削除します。 <lsl>llDumpList2String(llParseString2List(src, [" "], []), " "); //動作しますが、メモリを多く消費します。</lsl>

特記事項

経緯

  • Introduced in 1.13.4

Search JIRA for related Issues

Signature

function string llStringTrim( string src, integer type );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。