Difference between revisions of "LlStringLength"

From Second Life Wiki
Jump to navigation Jump to search
 
(*To quickly find out the number of bytes (in UTF-8), you can use llStringToBase64 (see also snippet there))
 
(16 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{LSLFunctionAll|func_id=128|func_sleep=0.0|func_energy=10.0|func=llStringLength|return_type=integer|p1_type=string|p1_name=str|func_footnote=Returns the length of string|return_text|spec|caveats|examples|helpers|related|also|notes}}[[Category:LSL_Functions]][[Category:LSL_Stub]]
{{LSL_Function
|func_id=128|func_sleep=0.0|func_energy=10.0
|func=llStringLength|return_type=integer|p1_type=string|p1_name=str
|func_footnote
|func_desc
|return_text=that is the number of characters in '''str'''.
|spec
|caveats=
*The index of the last character is not equal to the string length.
**Character indexs start at zero (the index of the first character is zero).
*llStringLength() gets the number of characters, not bytes
**LSL-2 sees all strings as UTF-8
**LSL-Mono sees all string as UTF-16
**Both UTF-8 and UTF-16 use multibyte characters
*Some communication functions (e.g. llHTTPResponse) are limited by number of Bytes, and work with UTF-8 strings
**To quickly find out the number of bytes (in UTF-8), you can use [[llStringToBase64]] (see also snippet there)
|constants
|examples=
<source lang="lsl2">
// assumptions:
//    object name: LSLWiki
//    script name: _lslwiki
 
default
{
    state_entry()
    {
        string HowLongAmI = "123";
        integer strlen = llStringLength(HowLongAmI);
        llOwnerSay( "'" + HowLongAmI + "' has " +(string) strlen + " characters.");
        // The owner of object LSLWiki will hear
        // LSLWiki: '123' has 3 characters.
    }
}
 
</source>
 
|helpers
|also_functions={{LSL DefineRow||[[llGetListLength]]|}}
|also_events
|also_tests
|also_articles
|notes
|permission
|negative_index
|sort=StringLength
|cat1=String
|cat2
|cat3
|cat4
}}

Latest revision as of 06:13, 24 January 2024

Summary

Function: integer llStringLength( string str );

Returns an integer that is the number of characters in str.

• string str

Caveats

  • The index of the last character is not equal to the string length.
    • Character indexs start at zero (the index of the first character is zero).
  • llStringLength() gets the number of characters, not bytes
    • LSL-2 sees all strings as UTF-8
    • LSL-Mono sees all string as UTF-16
    • Both UTF-8 and UTF-16 use multibyte characters
  • Some communication functions (e.g. llHTTPResponse) are limited by number of Bytes, and work with UTF-8 strings
    • To quickly find out the number of bytes (in UTF-8), you can use llStringToBase64 (see also snippet there)
All Issues ~ Search JIRA for related Bugs

Examples

// assumptions: 
//    object name: LSLWiki
//    script name: _lslwiki

default
{
    state_entry()
    {
        string HowLongAmI = "123";
        integer strlen = llStringLength(HowLongAmI);
        llOwnerSay( "'" + HowLongAmI + "' has " +(string) strlen + " characters.");
        // The owner of object LSLWiki will hear 
        // LSLWiki: '123' has 3 characters.
    }
}

See Also

Functions

•  llGetListLength

Deep Notes

Search JIRA for related Issues

Signature

function integer llStringLength( string str );