Difference between revisions of "LlStringTrim"

From Second Life Wiki
Jump to: navigation, search
m
m (lsl code tagging)
Line 32: Line 32:
 
|examples=
 
|examples=
 
Returns the number of leading and trailing spaces on a string (not particularly useful but shows how to use the function).
 
Returns the number of leading and trailing spaces on a string (not particularly useful but shows how to use the function).
<pre>
+
<lsl>
 
default
 
default
 
{
 
{
Line 65: Line 65:
 
     }
 
     }
 
}
 
}
</pre>
+
</lsl>
 
|helpers
 
|helpers
 
|also_functions
 
|also_functions
Line 75: Line 75:
 
|notes=
 
|notes=
 
The following examples will make the same result.
 
The following examples will make the same result.
<pre>
+
<lsl>
 
string src = "  Duh    ";
 
string src = "  Duh    ";
 
st = llStringTrim(src, STRING_TRIM_HEAD);
 
st = llStringTrim(src, STRING_TRIM_HEAD);
 
st = llStringTrim(st , STRING_TRIM_TAIL);
 
st = llStringTrim(st , STRING_TRIM_TAIL);
</pre>
+
</lsl>
<pre>
+
<lsl>
 
string src = "  Duh    ";
 
string src = "  Duh    ";
 
st = llStringTrim(src, STRING_TRIM);
 
st = llStringTrim(src, STRING_TRIM);
</pre>
+
</lsl>
  
 
This is because <code>(STRING_TRIM_HEAD {{!}} STRING_TRIM_TAIL) == STRING_TRIM</code>.
 
This is because <code>(STRING_TRIM_HEAD {{!}} STRING_TRIM_TAIL) == STRING_TRIM</code>.

Revision as of 14:52, 30 March 2008

Summary

Function: string llStringTrim( string src, integer type );

Returns a string that is src with leading and/or trailing white space (spaces, tabs, and line feeds) trimmed from it.

• string src
• integer type STRING_TRIM* flag(s)
Constant Description
STRING_TRIM_HEAD 0x1 Trims spaces off the beginning.
STRING_TRIM_TAIL 0x2 Trims spaces off the end.
STRING_TRIM 0x3 Trims spaces off the beginning and end.

Examples

Returns the number of leading and trailing spaces on a string (not particularly useful but shows how to use the function). <lsl> default {

   state_entry()
   {
       llListen(4, "", llGetOwner(), "");
   }
   on_rez(integer a)
   {
       llResetScript();
   }
   listen(integer chan, string name, key id, string msg)
   {
       //test for and remove wrapping single or double quotes
       if(~llSubStringIndex("'\"", llGetSubString(msg,0,0)))
           if(llGetSubString(msg,-1,-1) == llGetSubString(msg,0,0))
               msg = llDeleteSubString(msg, -1, 0);
       
       //track the length
       integer length = llStringLength(msg);
       
       //trim msg (not necessary to store these to variables but makes reading easier)
       string trim_left = llStringTrim(msg, STRING_TRIM_HEAD);
       string trim_right = llStringTrim(msg, STRING_TRIM_HEAD);
       string trim = llStringTrim(msg, STRING_TRIM);
       //output the results
       llOwnerSay("Initial length = " + (string)length +
                "\nLeading Spaces = " + (string)(length - llStringLength(trim_left))+
                "\nTrailing Spaces = " + (string)(length - llStringLength(trim_right))+
                "\nTrimmed Message = \"" + trim + "\"");
   }

}

</lsl>

Notes

The following examples will make the same result. <lsl> string src = " Duh "; st = llStringTrim(src, STRING_TRIM_HEAD); st = llStringTrim(st , STRING_TRIM_TAIL); </lsl> <lsl> string src = " Duh "; st = llStringTrim(src, STRING_TRIM); </lsl>

This is because (STRING_TRIM_HEAD | STRING_TRIM_TAIL) == STRING_TRIM.

Deep Notes

History

  • Introduced in 1.13.4

Search JIRA for related Issues

Signature

function string llStringTrim( string src, integer type );