API GetWord - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
GetWord
Оглавление · Алфавитный указатель · BASIC built-ins
ClassicUO • Runtime API
Выделяет слово по индексу после разделения строки.
Точный синтаксис
GetWord(value:String, wordIndex:Integer) -> String
GetWord(value:String, wordIndex:Integer, delimiter:String) -> String
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
value— Исходный текст.wordIndex— Индекс слова от 0. Отрицательный или слишком большой индекс даёт пустую строку.delimiter— Необязательная строка-разделитель. Без аргумента, пустая строка и один пробел означают любые Unicode whitespace. Иная строка — точная последовательность целиком. Пустые части между разделителями удаляются.
Возвращает
String — выбранное непустое слово, либо пустая строка при отсутствии слова с таким индексом. Это не количество слов. Индекс начинается с 0, в отличие от позиции InStr.
Поведение
- Выполняется локально и не обращается к игровому серверу. Исходная строка не изменяется: результат нужно сохранить или передать дальше.
- Позиции и длины строк считаются в единицах UTF-16. Символ за пределами BMP, например emoji, занимает две единицы. Это не количество байтов UTF-8.
Примеры
Пример 1. Второе слово
# Второе слово
#
# Выделяет слово по индексу после разделения строки.
#
# String — выбранное непустое слово, либо пустая строка при отсутствии слова с таким индексом.
# Это не количество слов. Индекс начинается с 0, в отличие от позиции InStr.
SUB Main()
# wordIndex=1 выбирает второе слово; delimiter отсутствует.
# Ожидаемый результат: строка iron. В result сохраняется результат выражения; Print только
# показывает его.
VAR result = GetWord('ore iron gold',1)
UO.Print(CStr(result))
END SUB
Разбор параметров и выполнения:
- wordIndex=1 выбирает второе слово; delimiter отсутствует.
- Ожидаемый результат: строка iron. В result сохраняется результат выражения; Print только показывает его.
Пример 2. Многосимвольный разделитель
# Многосимвольный разделитель
#
# Выделяет слово по индексу после разделения строки.
#
# String — выбранное непустое слово, либо пустая строка при отсутствии слова с таким индексом.
# Это не количество слов. Индекс начинается с 0, в отличие от позиции InStr.
SUB Main()
# delimiter="::"; пустая часть между повторными разделителями удаляется. Индекс 2 выбирает
# третье слово.
# Ожидаемый результат: строка c. В result сохраняется результат выражения; Print только
# показывает его.
VAR result = GetWord('a::b::::c',2,'::')
UO.Print(CStr(result))
END SUB
Разбор параметров и выполнения:
- delimiter="::"; пустая часть между повторными разделителями удаляется. Индекс 2 выбирает третье слово.
- Ожидаемый результат: строка c. В result сохраняется результат выражения; Print только показывает его.
Пример 3. Слово отсутствует
# Слово отсутствует
#
# Выделяет слово по индексу после разделения строки.
#
# String — выбранное непустое слово, либо пустая строка при отсутствии слова с таким индексом.
# Это не количество слов. Индекс начинается с 0, в отличие от позиции InStr.
SUB Main()
# У текста только два слова с индексами 0 и 1.
# Ожидаемый результат: пустая строка. В result сохраняется результат выражения; Print только
# показывает его.
VAR result = GetWord('one two',10)
UO.Print(CStr(result))
END SUB
Разбор параметров и выполнения:
- У текста только два слова с индексами 0 и 1.
- Ожидаемый результат: пустая строка. В result сохраняется результат выражения; Print только показывает его.