String/pl
LSL Portal | | | Funkcje | | | Zdarzenia | | | Typy | | | Stałe | | | Potoki | | | Biblioteka Skryptów | | | Tutoriale |
Typ string to dane tekstowe. Długość łańcucha tekstowego jest ograniczona tylko dostępną dla skryptu pamięcią. Łańcuch znaków jest ograniczony cudzysłowem (") podczas definiowania. Można używać dowolnych znaków, chociaż niektóre wymagają użycia sekwencji specjalnych (tzw. "escaped characters")
Łancuchy mogą być łączone (konkatenowane) przy użyciu operatora +.
ciąg | zamieniany na |
---|---|
\t | cztery spacje |
\n | nowa linia |
\" | cudzysłów " |
\\ | odwrotny ukośnik \ |
Przykłady łąńcuchów znakowych: <lsl>"Cześć Awatarze!" "Tak" "Nie" "Jest godzina 10." "Mam 21 lat!" "Pomóż " + "mi" EOF //Następujące łańcuchy mają tę samą zawartość. "I scream,\nyou scream,\nwe all scream,\nfor ice-cream!" "I scream, you scream, we all scream, for ice-cream!" </lsl> |
Uwaga: Sekwencje specjalne (powyżej) są tłumaczone (parsowane) podczas kompilacji skryptu, a nie podczas jego wykonywania. Wskutek tego tylko teksty które są w skrypcie w momencie kompilacji będą miały (np.) \n zamienione na znak nowej linii. Teksty czytane z notecard'ów, czatu http, itd. Nie są sprawdzane pod kątem sekwencji specjalnych, to samo \n czytane z notecard'a nie zostanie w żadnym przypadku automatycznie zamienione w znak nowej linii. Jeżeli potrzebujesz tego z jakiegoś powodu, musisz sam oprogramować tę funkcję.
Uwaga: Osoby, które posiadają znajomość języków typu C lub Java mogą źle interpretować reguły sekwencji specjalnych w LSL'u. LSL'owe "\n" oznacza llUnescapeURL("%0A"), tak jak w C lub Javie, ale już "\t" oznacza llUnescapeURL("%20%20%20%20"), a nie llUnescapeURL("%09"), a "\r" oznacza "r" a nie llUnescapeURL("%0D") itd.
Zmienna: string nazwa;
<lsl>string nazwa;</lsl> Deklaruje zmienną typu string nazwaną nzwa o wartości ""
• zmienna | nazwa | – | nazwa zmiennej |
Zmienna: string nazwa = wartość;
<lsl>string nazwa = wartość;</lsl> Deklaruje zmienną typu string o nazwie "nazwa" i wartości "wartość".
• zmienna | nazwa | – | nazwa zmiennej | |
• wyrażenie | wartość | – | wyrażenie łańcuchowe lub stała |
Rzutowanie(Konwersja typu): (string)wartość
<lsl>(string)wartość</lsl> Zamienia wartość na wyrażenie typu string.
• wyrażenie | wartość | – | wyrażenie lub stała |
Operators
See Operators for more information.
Combine: value1 + value2
<lsl>(value1 + value2)</lsl> Combines two strings into a single string without modifying the inputs. Appends value2 to value1 and returns the resulting string.
• expression | value1 | – | wyrażenie łańcuchowe lub stała | |
• expression | value2 | – | wyrażenie łańcuchowe lub stała |
Comparison: value1 == value2
<lsl>(value1 == value2)</lsl>
Compares two strings, returns one if same length and same characters, else returns zero.
This operator works exactly like !strcmp(value1, value2)
in C, thus technically differs from the counterintuitive behavior of the == operator in C and in Java.
• expression | value1 | – | wyrażenie łańcuchowe lub stała | |
• expression | value2 | – | wyrażenie łańcuchowe lub stała |
Comparison: value1 != value2
<lsl>(value1 != value2)</lsl>
Compares two strings, returns zero if same length and same characters, otherwise non-zero.
This operator works exactly like strcmp(value1, value2)
in C, thus technically differs from the counterintuitive behavior of the != operator in C and in Java.
• expression | value1 | – | wyrażenie łańcuchowe lub stała | |
• expression | value2 | – | wyrażenie łańcuchowe lub stała |
Examples
<lsl>integer int = 48934; string str = (string)int; string str_2; str_2 = str;</lsl>
Useful Functions
String functions in the CombinedLibrary
• | str_replace | – | replace all instances of a string with another string in a target string. | |
• | TrimRight | – | Trim characters from the right end of a string | |
• | TrimLeft | – | Trim characters from the left end of a string | |
• | TrimBoth | – | Trim characters from the both ends of a string |
Examples
• | SplitLine | – | Insert 'new line' escape codes at certain positions of a string |