StringName

Вбудований тип для унікальних рядків.

Опис

StringName — це незмінні рядки, призначені для представлення унікальних імен загального призначення (також називається "інтернування рядків"). Два StringName з однаковим значенням є одним і тим же об’єктом. Їх порівняння відбувається надзвичайно швидко порівняно зі звичайними String.

Зазвичай ви передаєте String методам, які очікують StringName, і він буде автоматично перетворений (часто під час компіляції), але в рідкісних випадках ви можете створити StringName завчасно за допомогою конструктора StringName або, у GDScript, літерального синтаксису &"example". Ручне створення StringName дозволяє контролювати, коли відбувається перетворення з String, або використовувати літерал і повністю запобігати перетворенням.

Дивіться також NodePath, який є подібною концепцією, спеціально розробленою для зберігання попередньо проаналізованих шляхів дерева сцен.

Усі методи String також доступні в цьому класі. Вони перетворюють StringName на рядок і також повертають рядок. Це дуже неефективно, і його слід використовувати, лише якщо рядок потрібен.

Примітка. У C# для використання методів, перелічених на цій сторінці, потрібне явне перетворення в System.String. Використовуйте метод ToString(), щоб привести StringName до рядка, а потім використовуйте еквівалентні методи в System.String або StringExtensions.

Примітка. У логічному контексті StringName матиме значення false, якщо він порожній (StringName("")). В іншому випадку StringName завжди матиме значення true.

Примітка

Існують значні відмінності при використанні цього API із С#. Більше інформації: ref:doc_c_sharp_differences.

Конструктори

StringName

StringName()

StringName

StringName(from: StringName)

StringName

StringName(from: String)

Методи

bool

begins_with(text: String) const

PackedStringArray

bigrams() const

int

bin_to_int() const

String

c_escape() const

String

c_unescape() const

String

capitalize() const

int

casecmp_to(to: String) const

bool

contains(what: String) const

bool

containsn(what: String) const

int

count(what: String, from: int = 0, to: int = 0) const

int

countn(what: String, from: int = 0, to: int = 0) const

String

dedent() const

bool

ends_with(text: String) const

String

erase(position: int, chars: int = 1) const

int

filecasecmp_to(to: String) const

int

filenocasecmp_to(to: String) const

int

find(what: String, from: int = 0) const

int

findn(what: String, from: int = 0) const

String

format(values: Variant, placeholder: String = "{_}") const

String

get_base_dir() const

String

get_basename() const

String

get_extension() const

String

get_file() const

String

get_slice(delimiter: String, slice: int) const

int

get_slice_count(delimiter: String) const

String

get_slicec(delimiter: int, slice: int) const

int

hash() const

PackedByteArray

hex_decode() const

int

hex_to_int() const

String

indent(prefix: String) const

String

insert(position: int, what: String) const

bool

is_absolute_path() const

bool

is_empty() const

bool

is_relative_path() const

bool

is_subsequence_of(text: String) const

bool

is_subsequence_ofn(text: String) const

bool

is_valid_ascii_identifier() const

bool

is_valid_filename() const

bool

is_valid_float() const

bool

is_valid_hex_number(with_prefix: bool = false) const

bool

is_valid_html_color() const

bool

is_valid_identifier() const

bool

is_valid_int() const

bool

is_valid_ip_address() const

bool

is_valid_unicode_identifier() const

String

join(parts: PackedStringArray) const

String

json_escape() const

String

left(length: int) const

int

length() const

String

lpad(min_length: int, character: String = " ") const

String

lstrip(chars: String) const

bool

match(expr: String) const

bool

matchn(expr: String) const

PackedByteArray

md5_buffer() const

String

md5_text() const

int

naturalcasecmp_to(to: String) const

int

naturalnocasecmp_to(to: String) const

int

nocasecmp_to(to: String) const

String

pad_decimals(digits: int) const

String

pad_zeros(digits: int) const

String

path_join(path: String) const

String

remove_char(what: int) const

String

remove_chars(chars: String) const

String

repeat(count: int) const

String

replace(what: String, forwhat: String) const

String

replace_char(key: int, with: int) const

String

replace_chars(keys: String, with: int) const

String

replacen(what: String, forwhat: String) const

String

reverse() const

int

rfind(what: String, from: int = -1) const

int

rfindn(what: String, from: int = -1) const

String

right(length: int) const

String

rpad(min_length: int, character: String = " ") const

PackedStringArray

rsplit(delimiter: String = "", allow_empty: bool = true, maxsplit: int = 0) const

String

rstrip(chars: String) const

PackedByteArray

sha1_buffer() const

String

sha1_text() const

PackedByteArray

sha256_buffer() const

String

sha256_text() const

float

similarity(text: String) const

String

simplify_path() const

PackedStringArray

split(delimiter: String = "", allow_empty: bool = true, maxsplit: int = 0) const

PackedFloat64Array

split_floats(delimiter: String, allow_empty: bool = true) const

String

strip_edges(left: bool = true, right: bool = true) const

String

strip_escapes() const

String

substr(from: int, len: int = -1) const

PackedByteArray

to_ascii_buffer() const

String

to_camel_case() const

float

to_float() const

int

to_int() const

String

to_kebab_case() const

String

to_lower() const

PackedByteArray

to_multibyte_char_buffer(encoding: String = "") const

String

to_pascal_case() const

String

to_snake_case() const

String

to_upper() const

PackedByteArray

to_utf8_buffer() const

PackedByteArray

to_utf16_buffer() const

PackedByteArray

to_utf32_buffer() const

PackedByteArray

to_wchar_buffer() const

String

trim_prefix(prefix: String) const

String

trim_suffix(suffix: String) const

int

unicode_at(at: int) const

String

uri_decode() const

String

uri_encode() const

String

uri_file_decode() const

String

validate_filename() const

String

validate_node_name() const

String

xml_escape(escape_quotes: bool = false) const

String

xml_unescape() const

Оператори

bool

operator !=(right: String)

bool

operator !=(right: StringName)

String

operator %(right: Variant)

String

operator +(right: String)

String

operator +(right: StringName)

bool

operator <(right: StringName)

bool

operator <=(right: StringName)

bool

operator ==(right: String)

bool

operator ==(right: StringName)

bool

operator >(right: StringName)

bool

operator >=(right: StringName)


Описи конструкторів

StringName StringName() 🔗

Будуємо порожній StringName.


StringName StringName(from: StringName)

Constructs a StringName як копія даної StringName.


StringName StringName(from: String)

Створює новий StringName з даної String. У GDScript StringName("example") еквівалент &"example".


Описи методів

bool begins_with(text: String) const 🔗

Повертає true, якщо рядок починається з даної text. Дивіться також ends_with().


PackedStringArray bigrams() const 🔗

Повертає масив, що містить біграми (пари послідовних символів) цього рядка.

print("Get up!".bigrams()) # Prints ["Ge", "et", "t ", " u", "up", "p!"]

int bin_to_int() const 🔗

Перетворює рядок, що представляє двійкове число, на int. Рядок може додатково мати префікс "0b" і додатковий префікс - для від’ємних чисел.

print("101".bin_to_int()) # Виводить 5
print("0b101".bin_to_int()) # Виводить 5
print("-0b10".bin_to_int()) # Виводить -2

String c_escape() const 🔗

Повертає копію рядка з особливими героями, які втекли за допомогою стандарту C.


String c_unescape() const 🔗

Повертає копію рядка з втечу символи, заміщеними їх значеннями. Підтримані послідовності втечу \', \", \\\, \a, \b, \f, \n, \r, \t, \v.

Примітка: На відміну від парсера GDScript, цей метод не підтримує \uXXXX послідовність втечу.


String capitalize() const 🔗

Змінює зовнішній вигляд рядка: замінює підкреслення (_) пробілами, додає пробіли перед великими літерами в середині слова, перетворює всі літери на малі, потім перетворює першу та кожну наступну за пробілом у верхній регістр.

"move_local_x".capitalize() # Повертає "Move Local X"
"sceneFile_path".capitalize() # Повертає "Шлях до файлу сцени"
"2D, FPS, PNG".capitalize() # Повертає "2D, FPS, PNG"

int casecmp_to(to: String) const 🔗

Виконує порівняння з іншим рядком з урахуванням регістру. Повертає -1, якщо менше, 1, якщо більше, або 0, якщо дорівнює. "Менше ніж" та "більше ніж" визначаються за допомогою кодових точок Unicode кожного рядка, що приблизно відповідає алфавітному порядку.

Для рядків різної довжини повертає 1, якщо цей рядок довший за рядок to, або -1, якщо коротший. Зверніть увагу, що довжина порожніх рядків завжди 0.

Щоб отримати результат bool з порівняння рядків, використовуйте оператор ==. Див. також nocasecmp_to(), filecasecmp_to() та naturalcasecmp_to().


bool contains(what: String) const 🔗

Повертає true, якщо рядок містить what. У GDScript це відповідає оператору in.

print("Node".contains("de")) # Виводить true
print("team".contains("I")) # Виводить false
print("I" in "team") # Виводить false

Якщо вам потрібно дізнатися, де знаходиться what у рядку, використовуйте find(). Дивіться також міститьn().


bool containsn(what: String) const 🔗

Повертає true, якщо рядок містить what, ігноруючи регістр.

Якщо вам потрібно знати, де знаходиться what у рядку, використовуйте findn(). Див. також contains().


int count(what: String, from: int = 0, to: int = 0) const 🔗

Повертає кількість входжень підрядка what між позиціями from та to. Якщо to дорівнює 0, пошук продовжується до кінця рядка.


int countn(what: String, from: int = 0, to: int = 0) const 🔗

Повертає кількість входжень підрядка what між позиціями from і to, ігноруючи регістр. Якщо to дорівнює 0, пошук продовжується до кінця рядка.


String dedent() const 🔗

Повертає копію рядка без відступів (початкових табуляцій та пробілів). Див. також indent() для додавання відступів.


bool ends_with(text: String) const 🔗

Повертає true, якщо рядок закінчується заданим text. Див. також begins_with().


String erase(position: int, chars: int = 1) const 🔗

Повертає рядок, у якому стерто chars символів, починаючи з position. Якщо chars перевищує довжину рядка, задану position, з повернутого рядка буде стерто менше символів. Повертає порожній рядок, якщо position або chars від'ємні. Повертає вихідний рядок без змін, якщо chars дорівнює 0.


int filecasecmp_to(to: String) const 🔗

Подібно до naturalcasecmp_to(), але надає пріоритет рядкам, що починаються з крапок (.) та символів підкреслення (_) перед будь-яким іншим символом. Корисно під час сортування папок або імен файлів.

Щоб отримати результат bool з порівняння рядків, використовуйте оператор ==. Див. також filenocasecmp_to(), naturalcasecmp_to() та casecmp_to().


int filenocasecmp_to(to: String) const 🔗

Подібно до naturalnocasecmp_to(), але надає пріоритет рядкам, що починаються з крапок (.) та символів підкреслення (_) перед будь-яким іншим символом. Корисно під час сортування папок або імен файлів.

Щоб отримати результат bool з порівняння рядків, використовуйте оператор ==. Див. також filecasecmp_to(), naturalnocasecmp_to() та nocasecmp_to().


int find(what: String, from: int = 0) const 🔗

Повертає індекс першої появи what у цьому рядку або -1, якщо їх немає. Початок пошуку можна вказати за допомогою from, продовжуючи до кінця рядка.

print("Команда".find("Я")) # Виводить -1

print("Картопля".find("t")) # Виводить 2
print("Картопля".find("t", 3)) # Виводить 4
print("Картопля".find("t", 5)) # Виводить -1

Примітка: Якщо ви просто хочете знати, чи містить рядок what, використовуйте contains(). У GDScript ви також можете використовувати оператор in.


int findn(what: String, from: int = 0) const 🔗

Повертає індекс першого без урахування регістру входження what у цей рядок, або -1, якщо таких немає. Початковий індекс пошуку можна вказати за допомогою from, продовжуючи до кінця рядка.


String format(values: Variant, placeholder: String = "{_}") const 🔗

Форматує рядок, замінюючи всі входження placeholder на елементи values.

values може бути Dictionary, Array або Object. Будь-які підкреслення в placeholder будуть заздалегідь замінені відповідними ключами. Елементи масиву використовують свій індекс як ключі.

# Друкує «Чекаючи на Godot» — це п’єса Семюеля Беккета, на честь якої названо двигун Godot».
var use_array_values = "Waiting for {0} is a play by {1}, and {0} Engine is named after it."
print(use_array_values.format(["Godot", "Samuel Beckett"]))

# Виводить «Користувач 42 — Godot».
print("User {id} — {name}.".format({"id": 42, "name": "Godot"}))

Деяка додаткова обробка виконується, коли values є Array. Якщо placeholder не містить підкреслення, елементи масиву values будуть використані для заміни одного входження заповнювача в порядку; Якщо елемент values є іншим 2-елементним масивом, він інтерпретуватиметься як пара ключ-значення.

# Виводить «Користувач 42 — Godot».
print("User {} - {}.".format([42, "Godot"], "{}"))
print("User {id} — {name}.".format([["id", 42], ["name", "Godot"]]))

Під час передачі Object імена властивостей із Object.get_property_list() використовуються як ключі.

# Виводить "Visible true, position (0, 0)"
var node = Node2D.new()
print("Visible {visible}, position {position}".format(node))

Перегляньте також підручник Рядок формату GDScript.

Примітка: Кожна заміна виконується послідовно для кожного елемента values, не відразу. Це означає, що якщо будь-який елемент вставлено і він містить інший заповнювач, він може бути змінений наступною заміною. Хоча це може бути дуже корисним, воно часто призводить до неочікуваних результатів. Якщо це не потрібно, переконайтеся, що елементи values не містять заповнювачів.

print("{0} {1}".format(["{1}", "x"])) # Виводить "x x"
print("{0} {1}".format(["x", "{0}"])) # Виводить "x {0}"
print("{a} {b}".format({"a": "{b}", "b": "c"})) # Виводить "c c"
print("{a} {b}".format({"b": "c", "a": "{b}"})) # Виводить "{b} c"

Примітка. У C# натомість рекомендується інтерполювати рядки за допомогою "$".


String get_base_dir() const 🔗

Якщо рядок є дійсним шляхом до файлу, повертає назву основного каталогу.

var dir_path = "/path/to/file.txt".get_base_dir() # dir_path is "/path/to"

String get_basename() const 🔗

Якщо рядок є дійсним шляхом до файлу, повертає повний шлях до файлу без розширення.

var base = "/path/to/file.txt".get_basename() # base is "/path/to/file"

String get_extension() const 🔗

Якщо рядок є дійсним ім’ям файлу або шляхом, повертає розширення файлу без початкової крапки (.). В іншому випадку повертає порожній рядок.

var a = "/path/to/file.txt".get_extension() # a це "txt"
var b = "cool.txt".get_extension() # b це "txt"
var c = "cool.font.tres".get_extension() # c це "tres"
var d = ".pack1".get_extension() # d це "pack1"

var e = "file.txt.".get_extension() # e це ""
var f = "file.txt..".get_extension() # f це ""
var g = "txt".get_extension() # g це ""
var h = "".get_extension() # h це ""

String get_file() const 🔗

Якщо рядок є дійсним шляхом до файлу, повертає ім’я файлу, включаючи розширення.

var file = "/path/to/icon.png".get_file() # файл "icon.png"

String get_slice(delimiter: String, slice: int) const 🔗

Розділяє рядок за допомогою delimiter і повертає підрядок за індексом slice. Повертає вихідний рядок, якщо delimiter не зустрічається в рядку. Повертає порожній рядок, якщо slice не існує.

Це швидше, ніж split(), якщо вам потрібен лише один підрядок.

print("i/am/example/hi".get_slice("/", 2)) # Виводить "example"

int get_slice_count(delimiter: String) const 🔗

Повертає загальну кількість розрізів, коли рядок розділено за допомогою поданого delimiter (див. split()).


String get_slicec(delimiter: int, slice: int) const 🔗

Розділяє рядок за допомогою символу з Юнікод з кодом delimiter і повертає підрядок в індексі slice. Повертає порожній рядок, якщо slice не існує.

Це швидше, ніж split(), якщо вам потрібен тільки певний підрядок.


int hash() const 🔗

Повертає значення 32-бітного хешу, що представляє вміст рядків.

Примітка: Рядки з однаковими значеннями хеш not гарантовано бути таким же, в результаті зіткнень. Навпаки з різними значеннями хешу гарантовано відрізняються.


PackedByteArray hex_decode() const 🔗

Декодує шістнадцятковий рядок як PackedByteArray.

var text = "привіт, світ"
var encoded = text.to_utf8_buffer().hex_encode() # виходи "68656c6c6f20776f726c64"
print(encoded.hex_decode().get_string_from_utf8())

int hex_to_int() const 🔗

Перетворює рядок, що представляє шістнадцяткове число, на int. Рядок може мати префікс "0x" і додатковий префікс - для від’ємних чисел.

print("0xff".hex_to_int()) # Виводить 255
print("ab".hex_to_int()) # Виводить 171

String indent(prefix: String) const 🔗

Змінює відступ кожного рядка за допомогою заданого префікса prefix. Порожні рядки не мають відступів. Див. також dedent() для видалення відступів.

Наприклад, рядок може бути відступлений двома табуляціями за допомогою "\t\t" або чотирма пробілами за допомогою " ".


String insert(position: int, what: String) const 🔗

Вставки what в наданій position в рядку.


bool is_absolute_path() const 🔗

Повертає true, якщо рядок є шлях до файлу або каталогу, а початкова точка явно визначена. Цей метод є протилежним is_relative_path().

Це включає в себе всі шляхи, починаючи з "res://", "user://", "C:\", "/" і т.д.


bool is_empty() const 🔗

Повертає true, якщо довжина рядка 0 ("""). Дивись також length().


bool is_relative_path() const 🔗

Повертаємо true, якщо рядок є шляхом, а початкова точка залежить від контексту. Шлях може початися з поточного каталогу, або поточного Node (якщо рядок виходить з NodePath), а іноді може бути попередньофіксований ./". Цей метод є протилежним is_absolute_path().


bool is_subsequence_of(text: String) const 🔗

Повертає true, якщо всі символи цього рядка можна знайти в text у їхньому початковому порядку. Це не те саме, що contains().

var text = "Вау, неймовірно!"

print("неїстівний".is_subsequence_of(text)) # Друк true
print("Слово!".is_subsequence_of(text))    # Друк true
print("Вікно".is_subsequence_of(text))   # Друк false
print("".is_subsequence_of(text))         # Друк true

bool is_subsequence_ofn(text: String) const 🔗

Повертає true, якщо всі символи цього рядка можна знайти в text у їхньому початковому порядку, ігноруючи регістр. Це не те саме, що containsn().


bool is_valid_ascii_identifier() const 🔗

Повертає true, якщо цей рядок є дійсним ідентифікатором ASCII. Дійсний ідентифікатор ASCII може містити лише літери, цифри та підкреслення (_), а перший символ не може бути цифрою.

print("node_2d".is_valid_ascii_identifier()) # Виводить true
print("TYPE_FLOAT".is_valid_ascii_identifier()) # Виводить true
print("1st_method".is_valid_ascii_identifier()) # Виводить false
print("MyMethod#2".is_valid_ascii_identifier()) # Виводить false

Дивіться також is_valid_unicode_identifier().


bool is_valid_filename() const 🔗

Повертає true, якщо цей рядок є коректним іменем файлу. Коректне ім'я файлу не може бути порожнім, починатися або закінчуватися пробілами або містити заборонені символи (: / \ ? * " | % < >).


bool is_valid_float() const 🔗

Повертає true, якщо цей рядок представляє дійсне число з плаваючою комою. Правильний float може містити лише цифри, одну десяткову крапку (.) і літеру експоненти (e). Перед ним також може бути позитивний (+) або негативний (-) знак. Будь-яке дійсне ціле число також є дійсним float (див. is_valid_int()). Дивіться також to_float().

print("1.7".is_valid_float()) # Виводить true
print("24".is_valid_float()) # Виводить true
print("7e3".is_valid_float()) # Виводить true
print("Привіт".is_valid_float()) # Виводить false

bool is_valid_hex_number(with_prefix: bool = false) const 🔗

Повертає true, якщо цей рядок є дійсним шістнадцятковим числом. Дійсне шістнадцяткове число містить лише цифри або літери A до F (великі або малі) і може мати перед собою позитивний (+) або негативний (-) знак.

Якщо with_prefix має значення true, шістнадцяткове число має мати префікс "0x", щоб вважатися дійсним.

print("A08E".is_valid_hex_number()) # Виводить true
print("-AbCdEf".is_valid_hex_number()) # Виводить true
print("2.5".is_valid_hex_number()) # Виводить false

print("0xDEADC0DE".is_valid_hex_number(true)) # Виводить true

bool is_valid_html_color() const 🔗

Повертаємо true, якщо цей рядок є дійсним кольором в шестигранному HTML позначення. Рядок повинен бути шестигранним значенням (див. is_valid_hex_number()) або 3, 4, 6 або 8 цифр, і може бути попередньофіксований знаком хеш (#. Інші HTML позначення для кольорів, таких як імена або hsl(), не вважаються дійсними. Дивитися також Color.html().


bool is_valid_identifier() const 🔗

Застаріло: Use is_valid_ascii_identifier() instead.

Повертає true, якщо цей рядок є дійсним ідентифікатором. Правильний ідентифікатор може містити лише літери, цифри та підкреслення (_), а перший символ не може бути цифрою.

print("node_2d".is_valid_identifier()) # Виводить true
print("TYPE_FLOAT".is_valid_identifier()) # Виводить true
print("1st_method".is_valid_identifier()) # Виводить false
print("MyMethod#2".is_valid_identifier()) # Виводить false

bool is_valid_int() const 🔗

Повертає true, якщо цей рядок представляє дійсне ціле число. Дійсне ціле число містить лише цифри та може мати перед собою позитивний (+) або негативний (-) знак. Дивіться також to_int().

print("7".is_valid_int()) # Виводить true
print("1.65".is_valid_int()) # Виводить false
print("Hi".is_valid_int()) # Виводить false
print("+3".is_valid_int()) # Виводить true
print("-12".is_valid_int()) # Виводить true

bool is_valid_ip_address() const 🔗

Повертає true, якщо цей рядок представляє добре відформатовану адресу IPv4 або IPv6. Цей метод розглядає зарезервовані IP-адреси, наприклад "0.0.0.0" і "ffff:ffff: ffff:ffff:ffff:ffff:ffff:ffff" як дійсний.


bool is_valid_unicode_identifier() const 🔗

Повертає true, якщо цей рядок є дійсним ідентифікатором Unicode.

Дійсний ідентифікатор Unicode має починатися з символу Unicode класу XID_Start або "_" і може містити символи Unicode класу XID_Continue в інших позиціях.

print("node_2d".is_valid_unicode_identifier()) # Виводить true
print("1st_method".is_valid_unicode_identifier()) # Виводить false
print("MyMethod#2".is_valid_unicode_identifier()) # Виводить false
print("endurance".is_valid_unicode_identifier()) # Виводить true
print("витривалість".is_valid_unicode_identifier()) # Prints true
print("体力".is_valid_unicode_identifier()) # Виводить true

Дивіться також is_valid_ascii_identifier().

Примітка. Цей метод перевіряє ідентифікатори так само, як і GDScript. Перегляньте TextServer.is_valid_identifier() для більш розширених перевірок.


String join(parts: PackedStringArray) const 🔗

Повертає конкатенацію елементів parts, кожен елемент розділений рядком, що викликає цей метод. Цей метод протилежний методу split().

var fruits = ["Яблуко", "Апельсин", "Груша", "Ківі"]

print(", ".join(fruits)) # Виводить "Яблуко, Апельсин, Груша, Ківі"
print("---".join(fruits)) # Виводить "Яблуко---Апельсин---Груша---Ківі"

String json_escape() const 🔗

Повертає копію рядка з особливими героями, які втекли за допомогою стандарта JSON. Тому що він тісно відповідає стандарту C, можна використовувати c_unescape(), щоб вийти на рядок, якщо це необхідно.


String left(length: int) const 🔗

Повертає перші length символи з початку рядка. Якщо length від'ємне, видаляє останні символи length із кінця рядка.

print("Hello World!".left(3)) # Виводить "Hel"
print("Hello World!".left(-4)) # Виводить "Hello Wo"

int length() const 🔗

Повертає кількість символів у рядку. Порожні рядки ("") завжди повертають 0. Дивіться також is_empty().


String lpad(min_length: int, character: String = " ") const 🔗

Форматує рядок довжиною щонайменше min_length, додаючи character ліворуч від рядка, якщо необхідно. Див. також rpad().


String lstrip(chars: String) const 🔗

Видаляє набір символів, визначених у chars, з початку рядка. Див. також rstrip().

Примітка: chars не є префіксом. Використовуйте trim_prefix() для видалення одного префікса, а не набору символів.


bool match(expr: String) const 🔗

Чи є простий виразний матч (також називається "glob" або "globbing"), де * відповідає нульовим або більш довільним символам і ? `` відповідає будь-якому символу, крім періоду ( . Порожня рядок або порожня експресія завжди оцінюється до ``false.


bool matchn(expr: String) const 🔗

Чи є простий case-insensitive вираз матч, де `` *`` відповідає нульовим або більш довільним символам і ? `` відповідає будь-якому символу, крім періоду ( . Порожня рядок або порожня експресія завжди оцінюється до ``false.


PackedByteArray md5_buffer() const 🔗

Повернення MD5 хеш рядка як PackedByteArray.


String md5_text() const 🔗

Повернення MD5 хеш рядка як ще String.


int naturalcasecmp_to(to: String) const 🔗

Виконує порівняння з іншим рядком у регістрово-чутливому, природному порядку. Повертає -1, якщо менше, 1, якщо більше, або 0, якщо дорівнює. "Менше ніж" або "більше ніж" визначаються за кодовими точками Unicode кожного рядка, що приблизно відповідає алфавітному порядку.

Під час використання для сортування порівняння в природному порядку впорядковує послідовності чисел за сумарним значенням кожної цифри, як часто очікується, а не за значенням однієї цифри. Відсортована послідовність нумерованих рядків буде ["1", "2", "3", ...], а не ["1", "10", "2", "3", ...].

Якщо довжина рядків різна, повертає 1, якщо цей рядок довший за рядок to, або -1, якщо коротший. Зверніть увагу, що довжина порожніх рядків завжди 0.

Щоб отримати результат bool з порівняння рядків, використовуйте оператор ==. Див. також naturalnocasecmp_to(), filecasecmp_to() та nocasecmp_to().


int naturalnocasecmp_to(to: String) const 🔗

Виконує порівняння з іншим рядком у регістрово-незалежному, природному порядку. Повертає -1, якщо менше, 1, якщо більше, або 0, якщо дорівнює. "Менше ніж" або "більше ніж" визначаються за кодовими точками Unicode кожного рядка, що приблизно відповідає алфавітному порядку. Внутрішньо малі символи перетворюються на великі для порівняння.

Під час використання для сортування порівняння в природному порядку впорядковує послідовності чисел за сумарним значенням кожної цифри, як часто очікується, а не за значенням однієї цифри. Відсортована послідовність нумерованих рядків буде ["1", "2", "3", ...], а не ["1", "10", "2", "3", ...].

Якщо довжина рядків різна, повертає 1, якщо цей рядок довший за рядок to, або -1, якщо коротший. Зверніть увагу, що довжина порожніх рядків завжди 0.

Щоб отримати результат bool з порівняння рядків, використовуйте оператор ==. Див. також naturalcasecmp_to(), filenocasecmp_to() та casecmp_to().


int nocasecmp_to(to: String) const 🔗

Виконує порівняння з іншим рядком без урахування регістру. Повертає -1, якщо менше, 1, якщо більше, або 0, якщо дорівнює. "Менше ніж" або "більше ніж" визначаються за допомогою кодових точок Unicode кожного рядка, що приблизно відповідає алфавітному порядку. Внутрішньо малі символи перетворюються на великі для порівняння.

Для рядків різної довжини повертає 1, якщо цей рядок довший за рядок to, або -1, якщо коротший. Зверніть увагу, що довжина порожніх рядків завжди 0.

Щоб отримати результат bool з порівняння рядків, використовуйте оператор ==. Див. також casecmp_to(), filenocasecmp_to() та naturalnocasecmp_to().


String pad_decimals(digits: int) const 🔗

Формати рядка, що представляє номер, щоб мати точну кількість digits * після * десятковий пункт.


String pad_zeros(digits: int) const 🔗

Формати рядка, що представляє номер, щоб мати точну кількість digits before десятковий пункт.


String path_join(path: String) const 🔗

Об'єднує path в кінці рядка як підшлях, додаючи / за потреби.

Приклад: "this/is".path_join("path") == "this/is/path".


String remove_char(what: int) const 🔗

Видаляє всі входження символу Unicode за допомогою коду what. Швидша версія методу replace(), коли ключ містить лише один символ, а заміна — "".


String remove_chars(chars: String) const 🔗

Видаляє будь-які символи, що зустрічаються в chars. Див. також remove_char().


String repeat(count: int) const 🔗

Повторює цей ряд разів. count повинен бути більшим, ніж 0. В іншому випадку повертає порожній рядок.


String replace(what: String, forwhat: String) const 🔗

Замінює всі входження what всередині рядка на заданий forwhat.


String replace_char(key: int, with: int) const 🔗

Замінює всі входження символу Unicode з кодом key на символ Unicode з кодом with. Швидша версія методу replace(), коли ключ містить лише один символ. Щоб отримати один символ, використовуйте "X".unicode_at(0) (зверніть увагу, що деякі рядки, такі як складені літери та емодзі, можуть складатися з кількох кодових точок Unicode і не працюватимуть із цим методом, використовуйте length(), щоб переконатися).


String replace_chars(keys: String, with: int) const 🔗

Замінює будь-які символи, що входять до складу keys, символом Unicode з кодом with. Див. також replace_char().


String replacen(what: String, forwhat: String) const 🔗

Замінює всі case-insensitive появи парам, що всередині рядка з наданою forwhat.


String reverse() const 🔗

Повернення копії цього рядка в зворотному порядку. Ця операція працює на пунктах коду унікоду, а не послідовностей точок коду, і може розбити речі, такі як складні листи або смайлики.


int rfind(what: String, from: int = -1) const 🔗

Повертає індекс останнього входження what у цьому рядку, або -1, якщо таких немає. Початок пошуку можна вказати за допомогою from, продовжуючи до початку рядка. Цей метод є зворотним до find().


int rfindn(what: String, from: int = -1) const 🔗

Повертає індекс останнього без урахування регістру входження what у цей рядок, або -1, якщо таких немає. Початковий індекс пошуку можна вказати за допомогою from, продовжуючи до початку рядка. Цей метод є зворотним до findn().


String right(length: int) const 🔗

Повертає останні символи length з кінця рядка. Якщо length від'ємне, видаляє перші символи length з початку рядка.

print("Hello World!".right(3))  # Виводить "ld!"
print("Hello World!".right(-4)) # Друкує "о Світе!"

String rpad(min_length: int, character: String = " ") const 🔗

Форматує рядок так, щоб він мав довжину щонайменше min_length, додаючи character праворуч від рядка, якщо необхідно. Див. також lpad().


PackedStringArray rsplit(delimiter: String = "", allow_empty: bool = true, maxsplit: int = 0) const 🔗

Розділяє рядок за допомогою delimiter і повертає масив підрядків, починаючи з кінця рядка. Розбиття у повернутому масиві з’являється в тому самому порядку, що й вихідний рядок. Якщо delimiter є порожнім рядком, кожен підрядок буде одним символом.

Якщо allow_empty має значення false, порожні рядки між суміжними роздільниками виключаються з масиву.

Якщо maxsplit більший за 0, кількість розділень не може перевищувати maxsplit. За замовчуванням весь рядок розділено, що здебільшого ідентично split().

var some_string = "Один, два, три, чотири"
var some_array = some_string.rsplit(",", true, 1)

print(some_array.size()) # Виводить 2
print(some_array[0]) # Виводить "Один, два, три"
print(some_array[1]) # Виводить "Чотири"

String rstrip(chars: String) const 🔗

Видаляє набір символів, визначених у chars, з кінця рядка. Див. також lstrip().

Примітка: chars не є суфіксом. Використовуйте trim_suffix() для видалення одного суфікса, а не набору символів.


PackedByteArray sha1_buffer() const 🔗

Повертаємо SHA-1 хеш рядка як PackedByteArray.


String sha1_text() const 🔗

Повертаємо SHA-1 хеш рядка в іншому String.


PackedByteArray sha256_buffer() const 🔗

Повертаємо SHA-256 хеш рядка як PackedByteArray.


String sha256_text() const 🔗

Повертаємо SHA-256 хеш рядка в іншому String.


float similarity(text: String) const 🔗

Повертає індекс подібності (коефіцієнт Соренсена-Діса) цього рядка порівняно з іншим. Результат 1.0 означає абсолютно подібний, тоді як 0.0 означає абсолютно несхожий.

print("ABC123".similarity("ABC123")) # Друкує 1.0
print("ABC123".similarity("XYZ456")) # Виводить 0.0
print("ABC123".similarity("123ABC")) # Виводить 0,8
print("ABC123".similarity("abc123")) # Виводить 0,4

String simplify_path() const 🔗

Якщо рядок є дійсним шляхом до файлу, перетворює рядок на канонічний шлях. Це найкоротший можливий шлях, без "./" і всього непотрібного ".." і "/".

var simple_path = "./path/to///../file".simplify_path()
print(simple_path) # Виводить "шлях/файл"

PackedStringArray split(delimiter: String = "", allow_empty: bool = true, maxsplit: int = 0) const 🔗

Розділяє рядок за допомогою delimiter і повертає масив підрядків. Якщо delimiter є порожнім рядком, кожен підрядок буде одним символом. Цей метод протилежний методу join().

Якщо allow_empty має значення false, порожні рядки між суміжними роздільниками виключаються з масиву.

Якщо maxsplit більший за 0, кількість розділень не може перевищувати maxsplit. За замовчуванням весь рядок розділено.

var some_array = "One,Two,Three,Four".split(",", true, 2)

print(some_array.size()) # Виводить 3
print(some_array[0]) # Виводить "One"
print(some_array[1]) # Виводить "Два"
print(some_array[2]) # Виводить "Три, Чотири"

Примітка. Якщо вам потрібен лише один підрядок із масиву, спробуйте використати get_slice(), який є швидшим. Якщо вам потрібно розділити рядки за більш складними правилами, замість цього використовуйте клас RegEx.


PackedFloat64Array split_floats(delimiter: String, allow_empty: bool = true) const 🔗

Розділяє рядок на плаваючі числа за допомогою delimiter і повертає PackedFloat64Array.

Якщо allow_empty має значення false, порожні або недійсні перетворення float між суміжними роздільниками виключаються.

var a = "1,2,4.5".split_floats(",") # a is [1.0, 2.0, 4.5]
var c = "1| ||4.5".split_floats("|") # c дорівнює [1.0, 0.0, 0.0, 4.5]
var b = "1| ||4.5".split_floats("|", false) # b дорівнює [1.0, 4.5]

String strip_edges(left: bool = true, right: bool = true) const 🔗

Роздягання всіх немаркованих символів з початку і кінця рядка. До них відносяться пробіли, вкладки (\t), а також нові лінії (\n \r).

Якщо зліва false, ігнорує початок рядка. Так само, якщо right false, ігнорує кінець рядка.


String strip_escapes() const 🔗

Смуги всі символи втечу з рядка. До них відносяться всі немарковані символи керування першої сторінки таблиці ASCII (значення від 0 до 31), такі як таблифікація (\t) та нова лінія (\n, \r) символи, але not.


String substr(from: int, len: int = -1) const 🔗

Повертає частину рядка з позиції from довжиною len. Якщо len дорівнює -1 (як за замовчуванням), повертає решту рядка, починаючи з заданої позиції.


PackedByteArray to_ascii_buffer() const 🔗

Конвертує рядок на ` ASCII <https://en.wikipedia.org/wiki/ASCII>`__/Latin-1 кодовано PackedByteArray. Цей метод трохи швидше to_utf8_buffer(), але замінює всі непідтримані символи з пробілами. This is the inverse of PackedByteArray.get_string_from_ascii().


String to_camel_case() const 🔗

Повертає рядок, перетворена на camelCase.


float to_float() const 🔗

Перетворює рядок, що представляє десяткове число, у float. Цей метод зупиняється на першому нечисловому символі, за винятком першої десяткової коми (.) і літери експоненти (e). Дивіться також is_valid_float().

var a = "12.35".to_float() # a дорівнює 12.35
var b = "1.2.3".to_float() # b це 1.2
var c = "12xy3".to_float() # c дорівнює 12,0
var d = "1e3".to_float() # d дорівнює 1000,0
var e = "Привіт!".to_float() # e дорівнює 0,0

int to_int() const 🔗

Перетворює рядок, що представляє ціле число, на int. Цей метод видаляє будь-який нечисловий символ і зупиняється на першій десятковій комі (.). Дивіться також is_valid_int().

var a = "123".to_int() # a дорівнює 123
var b = "x1y2z3".to_int() # b дорівнює 123
var c = "-1.2.3".to_int() # c дорівнює -1
var d = "Привіт!".to_int() # d дорівнює 0

String to_kebab_case() const 🔗

Повертає рядок, перетворений на kebab-case.

Примітка: Числа, за якими йде одна літера, не розділяються під час перетворення, щоб деякі слова (наприклад, "2D") залишалися разом.

"Node2D".to_kebab_case()               # Повертає "node-2d"
"2nd place".to_kebab_case()            # Повертає "2-nd-place"
"Texture3DAssetFolder".to_kebab_case() # Повертає "texture-3d-asset-folder"

String to_lower() const 🔗

Повертає рядок, що перетворюється на ``низ ``.


PackedByteArray to_multibyte_char_buffer(encoding: String = "") const 🔗

Перетворює рядок на системну багатобайтову кодову сторінку, закодовану як PackedByteArray. Якщо перетворення не вдається, повертається порожній масив.

Дозволені значення для encoding залежать від системи. Якщо encoding – це порожній рядок, використовується системне кодування за замовчуванням.


String to_pascal_case() const 🔗

Повертає рядок, перетворена на ПаскалаКаза.


String to_snake_case() const 🔗

Повертає рядок, перетворений на snake_case.

**Примітка: ** Числа, за якими йде *одна * літера, не розділяються під час перетворення, щоб зберегти деякі слова (наприклад, "2D") разом.

"Node2D".to_snake_case() # Повертає "node_2d"
"2nd place".to_snake_case() # Повертає "2_nd_place"
"Texture3DAssetFolder".to_snake_case() # Повертає "texture_3d_asset_folder"

String to_upper() const 🔗

Повертає рядок, що перетворюється на UPPERCASE.


PackedByteArray to_utf8_buffer() const 🔗

Конвертує рядок на UTF-8кодовано PackedByteArray. Цей метод дещо повільний, ніж метод_ascii_buffer, але підтримує всі символи UTF-8. Для більшості випадків, віддають перевагу цим методом. This is the inverse of PackedByteArray.get_string_from_utf8().


PackedByteArray to_utf16_buffer() const 🔗

Конвертує рядок на UTF-16кодовано PackedByteArray. This is the inverse of PackedByteArray.get_string_from_utf16().


PackedByteArray to_utf32_buffer() const 🔗

Конвертує рядок на UTF-32кодовано PackedByteArray. This is the inverse of PackedByteArray.get_string_from_utf32().


PackedByteArray to_wchar_buffer() const 🔗

Перетворює рядок на широкий характер (wchar_t, UTF-16 на Windows, UTF-32 на інших платформах) закодовано PackedByteArray. This is the inverse of PackedByteArray.get_string_from_wchar().


String trim_prefix(prefix: String) const 🔗

Видаляє заданий префікс prefix з початку рядка або повертає рядок без змін.


String trim_suffix(suffix: String) const 🔗

Видаліть задану prefix з кінця рядка, або повертає рядок незмінним.


int unicode_at(at: int) const 🔗

Повертає код символу в позиції at.

Див. також String.chr(), @GDScript.char() та @GDScript.ord().


String uri_decode() const 🔗

Декодує рядок з його формату, закодованого за URL-адресою. Цей метод призначений для правильного декодування параметрів в URL-адресі під час отримання HTTP-запиту. Див. також uri_encode().

var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
print(url.uri_decode()) # Виводить "$DOCS_URL/?highlight=Godot Engine:docs"

Примітка: Цей метод декодує + як пробіл.


String uri_encode() const 🔗

Кодує рядок до URL-дружнього формату. Цей метод призначений для правильного кодування параметрів в URL-адресі під час надсилання запиту HTTP. Дивіться також uri_decode().

var prefix = "$DOCS_URL/?highlight="
var url = prefix + "Godot Engine:docs".uri_encode()

print(url) # Виводить "$DOCS_URL/?highlight=Godot%20Engine%3%docs"

String uri_file_decode() const 🔗

Декодує шлях до файлу з його URL-кодованого формату. На відміну від методу uri_decode(), цей метод залишає + як є.


String validate_filename() const 🔗

Повертає копію рядка, в якому всі символи, недозволені в is_valid_filename(), замінені на символи підкреслення.


String validate_node_name() const 🔗

Повертає копію рядка з усіма символами, які не дозволені в Node.name (. : @ / " %) замінено підкресленням.


String xml_escape(escape_quotes: bool = false) const 🔗

Повертає копію рядка зі спеціальними символами, екранованими за допомогою стандарту XML. Якщо escape_quotes має значення true, символи одинарних лапок (') і подвійних лапок (") також екрануються.


String xml_unescape() const 🔗

Повертає копію рядка з вбитими символами, заміненими на їх значення відповідно до стандарту XML.


Описи операторів

bool operator !=(right: String) 🔗

Повертає true, якщо це StringName не еквівалентно даній String.


bool operator !=(right: StringName) 🔗

Повертає true, якщо StringName і right не відноситься до тієї ж назви. Порівняння між StringName набагато швидше, ніж регулярні String порівняння.


String operator %(right: Variant) 🔗

Форматує StringName, замінюючи заповнювачі одним або кількома параметрами, повертаючи String. Щоб передати кілька параметрів, right має бути масивом Array.

Для отримання додаткової інформації див. навчальний посібник Рядки формату GDScript.

Примітка: У C# цей оператор недоступний. Натомість див. як інтерполювати рядки за допомогою "$".


String operator +(right: String) 🔗

Додатки right в кінці цього StringName, повернення String. Це також відомий як рядок конкатенації.


String operator +(right: StringName) 🔗

Додатки right в кінці цього StringName, повернення String. Це також відомий як рядок конкатенації.


bool operator <(right: StringName) 🔗

Повертаємо true, якщо зліва StringName надходить до right. Зверніть увагу, що це не буде відповідати їхньому Юнікод замовлення.


bool operator <=(right: StringName) 🔗

Повертаємо true, якщо зліва StringName надходить до right або якщо вони однакові. Зверніть увагу, що це не буде відповідати їхньому Юнікод замовлення.


bool operator ==(right: String) 🔗

Повертає true, якщо це StringName еквівалентно даній String.


bool operator ==(right: StringName) 🔗

Повертає true, якщо StringName і right відносяться до тієї ж назви. Порівняння між StringName набагато швидше, ніж регулярні String порівняння.


bool operator >(right: StringName) 🔗

Повертає true, якщо лівий StringName тостер приходить після right. Зверніть увагу, що це не буде відповідати їхньому Юнікод замовлення.


bool operator >=(right: StringName) 🔗

Повертає true, якщо зліва StringName надходить після right або якщо вони однакові. Зверніть увагу, що це не буде відповідати їхньому Унікод замовлення.