A string is a sequence of characters limited in length only by available memory. Strings are enclosed in quotation marks (“). LSL uses UTF-8 for its encoding standard for strings.
Example:
string foo = "bar"; // this defines a string named "foo", containing the text "bar"
Strings can be concatenated using the plus sign (+) operator.
The hack to increase max stored list size works for strings as well:
myString = (myString="") + myString + "new_item";
Example:
// This adds the text "anotherstring" // and the result of (string)PI_BY_TWO to the end of an existing string. mystring = yourstring + "anotherstring" + (string)PI_BY_TWO;
(In this example, the text “(string)PI_BY_TWO” converts the float constant PI_BY_TWO to a string. This process is called typecasting.)
Escape Characters
In LSL, strings can contain some backslash (\) escape characters:
| Substring | Replaced with |
| \t | four spaces |
| \n | new line |
| \” | double quote |
| \\ | backslash |
These are just a subset of the backslash escape characters found in any other language. If a backslash is used in a string, and it is not paired up with one of the above characters and it will be treated as “\\”. These escape characters only work in compiled scripts. In other words, a listener cannot be used to find the “new line” escape sequence and then treat it as the compiler would. However, a predefined string containing “\n” can be substituted for an input escape character sequence.
Functions
These functions are only a few of the many that use strings, but they’re the ones that manipulate strings.
| Function Name | Purpose |
| llDeleteSubString | Removes a slice of a string |
| llDumpList2String | Turns a list into a string |
| llParseString2List llParseStringKeepNulls |
Turns a string into a list |
| llGetSubString | Extracts a part of a string |
| llInsertString | Inserts a string into a string |
| llToLower | Converts a string to lowercase |
| llToUpper | Converts a string to UPPERCASE |
| llStringLength | Gets the length of a string |
| llStringTrim | Trims leading and/or trailing spaces from a string |
| llSubStringIndex | Finds the position of a string in another string |
| llEscapeURL | Returns the string that is the URL-escaped version of url (replacing spaces with %20, etc) |
| llUnescapeURL | Returns the string that is the URL unescaped version of url, replacing “%20” with spaces, etc. |
LSL doesn’t appear to have any direct way to compare two strings for alphabetical order; here’s a hack.
integer CompareStrings(string a,string b) {
//returns -1 if they are in alphabetical order
//1 if in reverse alphabetical order
//0 if equal
if(a==b){return 0;}
if(a==llList2String(llListSort([a,b],1,TRUE),0)) {return -1;} else {return 1;}
}