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 łań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 |
Operatory
Zobacz też Operatory.
Łączenie: wartość1 + wartość2
<lsl>(wartość1 + wartość2)</lsl> Łączy dwa łańcuchy bez modyfikowania łańcuchów wejściowych. Dopisuje wartość2 do wartość1 i zwraca łańcuch wynikowy.
• wyrażenie | wartość1 | – | wyrażenie łańcuchowe lub stała | |
• wyrażenie | wartość2 | – | wyrażenie łańcuchowe lub stała |
Porównanie: wartość1 == wartość2
<lsl>(wartość1 == wartość2)</lsl>
Porównuje dwa łańcuchy, zwraca one, jeżeli są tej samej długości i zawierają te same znaki, w przeciwnym przypadku zwraca zero.
Ten operator działa dokładnie jak !strcmp(wartość1, wartość2)
w C, więc różni się zachowaniem od nieintuicyjnego operatora == w C i Javie.
• wyrażenie | wartość1 | – | wyrażenie łańcuchowe lub stała | |
• wyrażenie | wartość2 | – | wyrażenie łańcuchowe lub stała |
Porównanie: wartość1 != wartość2
<lsl>(wartość1 != wartość2)</lsl>
Porównuje dwa łańcuchy, zwraca zero jeżeli są tej samej długości i zawierają te same znaki, w przeciwnym przypadku zwraca wartość różną od zera.
Ten operator działa dokładnie jak strcmp(wartość1, wartość2)
w C, więc różni się zachowaniem od nieintuicyjnego operatora == w C i Javie.
• wyrażenie | wartość1 | – | wyrażenie łańcuchowe lub stała | |
• wyrażenie | wartość2 | – | wyrażenie łańcuchowe lub stała |
Przykład
<lsl>integer int = 48934; string str = (string)int; string str_2; str_2 = str;</lsl>
Użyteczne funkcje
Funkcje operujące na łańcuchach w Bibiliotece funkcji
• | str_replace | – | zamienia wszystkie wystąpienia pierwszego łańcucha drugim w łańcuchu docelowym. | |
• | TrimRight | – | Usuwa białe znaki z prawej strony łańcucha | |
• | TrimLeft | – | Usuwa białe znaki z lewej strony łańcucha | |
• | TrimBoth | – | Usuwa białe znaki z obydwu końców łańcucha |
Przykłady
• | SplitLine | – | Wstawia sekwencje specjalne 'nowa linia' w określonych miejscach łańcucha |