String/ru

См. также Text.
== Строка текстовых данных. ==
Строковые значения заключаются в двойные кавычки при определен в тексте LSL
Любой символ можно использовать в строке, за исключением "NUL" характер, хотя некоторые должны быть экранированы (см. Escape Codes section. На этой странице для получения дополнительной информации) "NUL" символ Unicode U+0000 значение и не может существовать в строку LSL. Поэтому например llUnescapeURL ("%00") приводит к пустая строка "".
Длина строки ограничена только доступны script memory. (См. String Length Restraints. Раздел на этой странице, некоторые оперативные ограничения) Но отметим, что в Mono, строк используется UTF-16 и занимают две памяти байта на символ.
Строки могут быть объединены с помощью + оператора. Обратите внимание, что объединение не может быть сделано при определении строки как глобальная переменная, а + рассматривается как исполняемые инструкции, она не обрабатывается компилятором. Объединение может быть сделано только в исполняемый код, то есть внутри пользовательской функции или в событии.
Некоторые операции со строками можно сделать с помощью встроенных функций, таких, как те, которые могут все сделать текст верхнего и нижнего регистра. Другие операции, такие как replace, left, right, wrap и т.п. должно быть сделано с помощью функции изобретены другими пользователями LSL (примеры которых находятся в нижней части этой страницы.)
Вы не имеете никакого контроля над шрифт, размер, вес или цвет, который Выходная строка отображается в пользователя на экраны или в меню. Внешний вид текста, отображаемого на экранах, таких как чат из текстового, контролируется пользователей (хотя и не много изменений по умолчанию.) Можно управлять только ли текст строчной или прописной.
(Единственный раз, у вас есть контроль над цветом отображается текст если есть Floating Text.)
Примеры строк:
<lsl>"Hello Avatar!"
"Yes"
"No"
"It's 10 o'clock."
"I am 21 years old!"
"Help " + "me"
EOF
//Следующие две строки имеют одинаковое значение (то есть они оба производят с текстом строк в нем.)
"I scream,\nyou scream,\nwe all scream,\nfor ice-cream!"
"I scream,
you scream,
we all scream,
for ice-cream!"
</lsl>
== Variable: string ; ==
<lsl>string name;</lsl>
Declares a variable of type string named name, with the value 
== Variable: string ; ==
<lsl>string name = value;</lsl>
Declares a variable of type string named name, with the value value.
== Typecast: (string) ==
<lsl>(string)value</lsl>
Converts value to a value of type string.
== Operators == 
See Operators for more information.
=== Combine: + ===
<lsl>(value1 + value2)</lsl>
Combines two strings into a single string without modifying the inputs. Appends value2 to value1 and returns the resulting string.
=== Comparison: == ===
<lsl>(value1 == value2)</lsl>
Compares two strings, returns 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.
=== Comparison: != ===
<lsl>(value1 != value2)</lsl>
Compares two strings, returns 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.
== Escape Codes==
Функции	Цель
\t 	four spaces
\n 	new line
\" 	double quote
\\ 	backslash
Escape коды преобразование происходит в момент компиляции сценария, а не во время его работы. Компилятор будет игнорировать любую другую комбинацию \ с символ, удалив \. Таким образом, "\a" означает "a". Результатом является то, что только строки, которые находятся внутри вашего скрипта при его компиляции получит, скажем, \n, превратился в символ "новой линии". Текст, чтения из NoteCard, чат, HTTP, название или описание объекта, и т.д., не будут проверяться Управляющие коды, -- что же \n набрал в NoteCard автоматически не превратится в символ «новой линии». Вам придется сделать это самостоятельно, если уж очень нужно по каким-то причинам.
Те, кто приходят к LSL из таких языков, как C и Java могут найти эти строки LSL побег правила запутанным на первый. В LSL, "\n" означает llUnescapeURL("%0A"), как и в C и Java, а "\t" означает llUnescapeURL("%20%20%20%20"), а не llUnescapeURL("%09"). Кроме того нет "\r" управляющий код и "\r" будет перевести на "\r", а не llUnescapeURL("%0D").
Для выполнения перевода escape символов попробовать функцию пользователя Unescape. 
==Символы с акцентами==
Раньше считалось, что ваш сценарий не были бы учтены, если вы включены в строку, содержащую символ с акцентом, например, "écoutez" и знаки препинания не используется в английском языке, например, "¿Entiende?».
Где-то в конце весны / начале лета 2008 года, начал составлять скрипты с акцентами в текстовых строках.
То есть:
<lsl>string hello = "Avatar écoutez";</lsl>
==Ограничения длины строки==
Как было отмечено в начале этой страницы, длина одной строки ограничена только в наличии script memory. Тем не менее, есть некоторые эксплуатационные ограничения. Многие функций и некоторые другие функции также наложить ограничения на входные строки. Эти ограничения могут привести сообщения об ошибках во время выполнения или "тихая" усечение (т.е. вы не получаете уведомления об ошибке, ни признаков того, что это было сделано.).
Примеры
* llSay - При использовании llSay, любую текстовую строку, как говорится будет усечен до 1024 символов, как по LSO и Mono. (Это 2048 байт памяти в Mono (UTF-16)).
* LlGetNotecardLine - При чтении в строках из Notecards, линии длиной более 255 символов будут сокращены молча.
* LlDialog - Если сообщение кнопки или тексты слишком длинные, не фатальная ошибка возникает при вызове функции.
Примечание
Ограничения этого типа всегда документированы, отсутствия лимитов в документации не означает, что никаких известных пределов (которые находятся за пределами нормы языка).
==Обрезка строки==
Обрезка строку, используемую для требуют созданные пользователем функции, такие как те, которые создаются с целью в библиотеке Раздор Онидзука (Strife Onizuka) автора.
Теперь, однако, есть собственная функция LSL, llStringTrim, которая может быть использована для удаления ведущих и / или конечных пробелов. Заметим, однако, что она не удаляет избыточные пространства, которое пользователь может попасть в середине предложения или строка, и нет никаких других функций родного LSL который делает.
Следующий код будет удалить оба все двойные пробелы внутри строки, а также любые начальные и конечные пробелы, он будет как никогда требуют значительного объема памяти, накладные расходы.
<lsl>string myTrimmedText = llDumpList2String(llParseString2List(src, [" "], []), " ");</lsl>
При приеме пользовательского ввода текста из чата, NoteCard или Prim название или описание, или любой другой "свободного хода" источник, это хорошая идея, чтобы всегда llStringTrim первого до начала работы с ним.
== Примеры ==
<lsl>integer int = 48934;
string str = (string)int;
string str_2;
str_2 = str;</lsl>
== Полезные функции ==
=== Созданные пользоваетем полезные функции ===
Эти функции были созданы и предоставлены пользователям LSL для выполнения операций не распространяется встроенный LSL функций.
function 	purpose
Chr 	Возвращает Unicode символ с данным кодом. См. также Ord.
Float2String 	Позволяет Выходная строка из поплавка в аккуратные текстовый формат, с возможностью округления.
Left 	Возврат текста осталось от указанного сепаратора.
Like 	Смотрите, если одно слово соответствует части другого.
Ord 	Возвращает порядковое (Unicode код) характер. См. также Chr.
RandomString 	Создает случайной строки.
RemoveHTMLTags	Удаляет HTML-теги из строки (и символы новой строки)
Right 	возвращает текст праве указанный разделитель.
str_replace 	заменить все вхождения строки другой строки в строку.
Stristr 	Возвращает строку из первого вхождения иглы до конца стогу.
SplitLine 	вставка escape 'new line' кодов в определенных позициях строки.
WrapText 	Прерывает текст в соответствие длины вашей спецификации.
=== Текст-документы из библиотеки скриптов ===
Name 	Creator 	Description
ParseString2List	Strife Onizuka 	То же, что llParseString2List и llParseStringKeepNulls, но не ограничены 8 прокладками или сепараторов. Таким образом заменить вызов llParseString2List и llParseStringKeepNulls функций с помощью вызова ParseString2List всякий раз, когда у вас есть более чем на 8 сепараторов или более 8 распорки.
String Compare 	Xaviar Czervik 	Сравнивает две строки и надежно возвращает либо 1, -1 или 0, если они такие же.
XyText 	Xylor Baysklef 	Текстовый дисплей (до 10 символов) на прим. Используйте столько примы как хотелось бы.
XyyyyzText 	Criz Collins 	Текстовый дисплей (до 10 символов) на прим. Отображает различные текст для каждой строки, а не единый текст, который будет разбит на следующие строки. Смотреть здесь, что это значит: http://screencast.com/t/1wMLujLcEO
XyzzyText 	Thraxis Epsilon and Gigs Taggart	Текстовый дисплей (до 10 символов) на примы. Путь, более эффективны, чем XyText.