Split. GetRightMost
Строки в сценариях UnrealScript
http://www.gamedev.ru/community/udk/articles/StringsInUnrealScript
Автор: Vincent Barabus
Обзор
Классы Object и Actor включают в себя несколько операторов и функций для выполнения действий со строками в сценариях UnrealScript. В этом документе мы подробно рассмотрим эти операторы и функции.
Операторы
$ (значок "доллар")
string $ ( coerce string A, coerce string B )
Оператор $ принимает две строки, A и B, и объединяет их. Если A или B не являются строками, то будет осуществлена попытка преобразования их значений в строки.
Пример:
`log("Unreal"$"Script"); //prints "UnrealScript"
$=
string $= ( out string A, coerce string B )
Оператор $= принимает две строки, A и B, объединяет их и присваивает результат первой строке. Если B не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
MyString = "Unreal";
MyString $= "Script"; // MyString contains "UnrealScript"
@ (at)
string @ ( coerce string A, coerce string B )
Оператор @ принимает две строки, A и B, и объединяет их, помещая между ними пробел. Если A или B не являются строками, то будет осуществлена попытка преобразования их значений в строки.
Пример:
log("Unreal"@"Engine"); //prints "Unreal Engine"
@=
string @= ( out string A, coerce string B )
Оператор @= принимает две строки, A и B, объединяет их, помещая между ними пробел, и присваивает результат первой строке. Если B не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
MyString = "Unreal";
MyString @= "Engine"; // MyString contains "Unreal Engine"
< (меньше)
bool < ( string A, string B )
Оператор < принимает две строки, A и B, и возвращает true если первая строка по алфавиту выше второй строки. Обратите внимание, что заглавные буквы всегда по алфавиту выше строчных букв. В случаях, когда необходимо сравнить строки без учета регистра, воспользуйтесь функцией Caps.
Пример:
("Monkey" < "Robot") //this is TRUE.
> (больше)
bool > ( string A, string B )
Оператор > принимает две строки, A и B, и возвращает true если первая строка по алфавиту ниже второй строки. Обратите внимание, что заглавные буквы всегда по алфавиту выше строчных букв. В случаях, когда необходимо сравнить строки без учета регистра, воспользуйтесь функцией Caps.
Пример:
("Batman" > "Aquaman") //this is TRUE.
<= (меньше или равно)
bool <= ( string A, string B )
Оператор <= принимает две строки, A и B, и возвращает true если первая строка по алфавиту выше или соответствует второй строке. Обратите внимание, что заглавные буквы всегда по алфавиту выше строчных букв. В случаях, когда необходимо сравнить строки без учета регистра, воспользуйтесь функцией Caps.
Пример:
("Monkey" <= "Robot") //this is TRUE.
("Monkey" <= "Monkey") //this is TRUE.
>= (больше или равно)
bool >= ( string A, string B )
Оператор >= принимает две строки, A и B, и возвращает true если первая строка по алфавиту ниже или соответствует второй строке. Обратите внимание, что заглавные буквы всегда по алфавиту выше строчных букв. В случаях, когда необходимо сравнить строки без учета регистра, воспользуйтесь функцией Caps.
Пример:
("Monkey" >= "Robot") //this is FALSE.
("Monkey" >= "Monkey") //this is TRUE.
== (равно)
bool == ( string A, string B )
Оператор == принимает две строки, A и B, и возвращает true если строки совпадают. Учтите, что сравнение осуществляется с учетом регистра.
Пример:
("Monkey" == "Robot") //this is FALSE.
("Monkey" == "Monkey") //this is TRUE.
("Monkey" == "monkey") //this is FALSE.
!= (не равно)
bool != ( string A, string B )
Оператор != принимает две строки, A и B, и возвращает true если строки НЕ совпадают. Учтите, что сравнение осуществляется с учетом регистра.
Пример:
("Monkey" != "Robot") //this is TRUE.
("Monkey" != "Monkey") //this is FALSE.
("Monkey" != "monkey") //this is TRUE.
~= (приближенно равно)
bool ~= ( string A, string B )
Оператор ~= принимает две строки, A и B, и возвращает истину, если строки совпадают независимо от регистра.
Пример:
("Monkey" ~= "Robot") //this is FALSE.
("Monkey" ~= "Monkey") //this is TRUE.
("Monkey" ~= "monkey") //this is TRUE.
-= (вычесть и присвоить)
string -= ( out string A, coerce string B );
Оператор -= удаляет все вхождения строки B из строки A и присваивает результат строке A. Поиск осуществляется с учетом регистра. Если B не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
MyString = "test: this is a test";
MyString -= "test";
log(MyString); // prints: ": this is a ";
Функции класса Object
Len
int Len ( coerce string S )
Возвращает длину строки.
Пример:
Len("this"); //returns 4;
InStr
int InStr ( coerce string S, coerce string t )
Функция InStr() возвращает позицию первого вхождения подстроки t в строке S. Если подстрока не найдена, то InStr возвращает -1. Обратите внимание, что поиск осуществляется с учетом регистра. В случаях, когда необходимо осуществить поиск без учета регистра, перед вызовом InStr воспользуйтесь функцией Caps для преобразования строк. Если S или t не являются строками, то будет осуществлена попытка преобразования их значений в строки.
Пример:
InStr("These PANTS rock!", "PANTS"); //returns 6
InStr("These PANTS rock!", "pants"); //returns -1
InStr( Caps("These PANTS rock!"), Caps("pants") ); //returns 6
Mid
string Mid ( coerce string S, int i, optional int j )
Функция Mid() возвращает подстроку из строки S начиная с символа по индексу i до символа по индексу j символов. Если j не указан, то копирование осуществляется до конца строки. Индекс i обрезается от 0 до значения длины строки. Индекс j обрезается между и i и значением длины строки. Если S не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
Mid("These PANTS rock!", 6, 5); //returns "PANTS"
Mid("These PANTS rock!", 6); //returns "PANTS rock!"
Left
string Left ( coerce string S, int i )
Функция Left() возвращает подстроку из строки S от начала до символа по индексу i, символ по индексу i в результат не включается. Если S не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
Left("These PANTS rock!", 5); //returns "These"
Right
string Right ( coerce string S, int i )
Функция Right() возвращает подстроку из строки S начиная с символа по индексу i до конца строки. Если S не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
Right("These PANTS rock!", 5); //returns "rock!"
Caps
string Caps ( coerce string S )
Функция Caps() возвращает строку S в верхнем регистре. Если S не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
Caps("wooo"); //returns "WOOO"
Locs
string Locs ( coerce string S )
Функция Locs() возвращает строку S в нижнем регистре. Если S не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
Locs("WoOo"); //returns "wooo"
Chr
string Chr ( int i )
Функция Chr() возвращает строковое представление целого числа. Результатом может быть любой символ в диапазоне 0 - 65535 таблицы Unicode.
Пример:
Chr(65); //returns "A"
Asc
int Asc ( string S )
Функция Asc() возвращает числовое представление первого символа строки S в таблице Unicode.
Пример:
Asc("A"); //returns 65
Repl
string Repl ( coerce string Src, coerce string Match, coerce string With, optional bool bCaseSensitive )
Функция Repl() заменяет все вхождения подстроки Match на подстроку With в строке Src. Если Src, Match или With не являются строками, то будет осуществлена попытка преобразования их значений в строки.
Пример:
Repl("This is a test", "is", "was"); // produces "Thwas was a test";
Repl("Two be or not two be", "two", "to", true); // returns "Two be or not to be"
Repl("Two be or not two be", "two", "to", false); // returns "to be or not to be"
| |
Split
static final function string Split(coerce string Text, coerce string SplitStr, optional bool bOmitSplitStr)
Функция Split() развивает строку Text в месте первого вхождения SplitStr и возвращает оставшуюся чатсть строки Text. Если bOmitSplitStr истинно, то подстрока SplitStr из результата выбрасывается, а если ложно, то то подстрока SplitStr включается в результат. Если Text или SplitStr не являются строками, то будет осуществлена попытка преобразования их значений в строки.
Пример:
Split("Unreal Engine uses UnrealScript as its scripting language", "scripting", false); // returns "scripting language"
Split("Unreal Engine uses UnrealScript as its scripting language", "scripting", true); // returns " language"
GetRightMost
string GetRightMost( coerce string Text )
Функция GetRightMost() разбивает строку Text в месте вхождения символа '_' и возврящает остаток строки, например, номер из имени актора. Если Text не является строкой, то будет осуществлена попытка преобразования ее значения в строку.
Пример:
GetRightMost("CoverLink_45"); // returns "45"
|