String
Вбудований тип для рядків.
Опис
Це вбудований тип рядка Variant (і той, що використовується GDScript). Рядки можуть містити будь-яку кількість символів Unicode та надавати методи, корисні для маніпулювання та генерації рядків. Рядки підраховуються за посиланнями та використовують підхід копіювання під час запису (кожна модифікація рядка повертає новий String), тому їх передача є економною з точки зору ресурсів.
Деякі рядкові методи мають відповідні варіації. Варіації з суфіксом n (countn(), findn(), replacen() тощо) нечутливі до регістру (вони не розрізняють великі та малі літери). Варіації методів з префіксом r (rfind(), rsplit() тощо) є інвертованими та починаються з кінця рядка, а не з початку.
Щоб перетворити будь-який Variant на рядок або з рядка, див. @GlobalScope.str(), @GlobalScope.str_to_var() та @GlobalScope.var_to_str().
Примітка: У логічному контексті рядок буде оцінюватися як false, якщо він порожній (""). В іншому випадку рядок завжди буде оцінюватися як true.
Примітка
Існують значні відмінності при використанні цього API із С#. Більше інформації: ref:doc_c_sharp_differences.
Посібники
Конструктори
String() |
|
String(from: StringName) |
Методи
Оператори
operator !=(right: String) |
|
operator !=(right: StringName) |
|
operator %(right: Variant) |
|
operator +(right: String) |
|
operator +(right: StringName) |
|
operator <(right: String) |
|
operator <=(right: String) |
|
operator ==(right: String) |
|
operator ==(right: StringName) |
|
operator >(right: String) |
|
operator >=(right: String) |
|
operator [](index: int) |
Описи конструкторів
Створює порожній String ("").
Створює String як копію заданого String.
Створює новий String з заданого NodePath.
String String(from: StringName)
Створює новий рядок String з заданого значення StringName.
Описи методів
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. Рядок може додатково мати префікс "0b" і додатковий префікс - для від’ємних чисел.
print("101".bin_to_int()) # Виводить 5
print("0b101".bin_to_int()) # Виводить 5
print("-0b10".bin_to_int()) # Виводить -2
GD.Print("101".BinToInt()); // Виводить 5
GD.Print("0b101".BinToInt()); // Виводить 5
GD.Print("-0b10".BinToInt()); // Виводить -2
Повертає копію рядка з особливими героями, які втекли за допомогою стандарту C.
Повертає копію рядка з втечу символи, заміщеними їх значеннями. Підтримані послідовності втечу \', \", \\\, \a, \b, \f, \n, \r, \t, \v.
Примітка: На відміну від парсера GDScript, цей метод не підтримує \uXXXX послідовність втечу.
Змінює зовнішній вигляд рядка: замінює підкреслення (_) пробілами, додає пробіли перед великими літерами в середині слова, перетворює всі літери на малі, потім перетворює першу та кожну наступну за пробілом у верхній регістр.
"move_local_x".capitalize() # Повертає "Move Local X"
"sceneFile_path".capitalize() # Повертає "Шлях до файлу сцени"
"2D, FPS, PNG".capitalize() # Повертає "2D, FPS, PNG"
"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().
String chr(code: int) static 🔗
Повертає один символ Юнікоду з цілого числа code. Ви можете використовувати unicodelookup.com або unicode.org як точки відліку.
print(String.chr(65)) # Виводить "A"
print(String.chr(129302)) # Виводить "🤖" (емодзі обличчя робота)
Див. також unicode_at(), @GDScript.char() та @GDScript.ord().
bool contains(what: String) const 🔗
Повертає true, якщо рядок містить what. У GDScript це відповідає оператору in.
print("Node".contains("de")) # Виводить true
print("team".contains("I")) # Виводить false
print("I" in "team") # Виводить false
GD.Print("Вузол".Містить("de")); // Виводить True
GD.Print("команда".Містить("Я")); // Виводить 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, пошук продовжується до кінця рядка.
Повертає копію рядка без відступів (початкових табуляцій та пробілів). Див. також 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
GD.Print("Команда".Знайти("Я")); // Виводить -1
GD.Print("Картопля".Знайти("t")); // Друкує 2
GD.Print("Картопля".Знайти("t", 3)); // Друкує 4
GD.Print("Картопля".Знайти("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# натомість рекомендується інтерполювати рядки за допомогою "$".
Якщо рядок є дійсним шляхом до файлу, повертає назву основного каталогу.
var dir_path = "/path/to/file.txt".get_base_dir() # dir_path is "/path/to"
Якщо рядок є дійсним шляхом до файлу, повертає повний шлях до файлу без розширення.
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 це ""
Якщо рядок є дійсним шляхом до файлу, повертає ім’я файлу, включаючи розширення.
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(), якщо вам потрібен тільки певний підрядок.
Повертає значення 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())
var text = "привіт, світ";
var encoded = text.ToUtf8Buffer().HexEncode(); // виходи "68656c6c6f20776f726c64"
GD.Print(encoded.HexDecode().GetStringFromUtf8());
Перетворює рядок, що представляє шістнадцяткове число, на int. Рядок може мати префікс "0x" і додатковий префікс - для від’ємних чисел.
print("0xff".hex_to_int()) # Виводить 255
print("ab".hex_to_int()) # Виводить 171
GD.Print("0xff".HexToInt()); // Виводить 255
GD.Print("ab".HexToInt()); // Друкує 171
String humanize_size(size: int) static 🔗
Перетворює size, який представляє кількість байтів, у зрозумілу людині форму.
Результат має формат префікса IEC, який може закінчуватися на "B", `` "KiB", ``"MiB", "GiB", "TiB", "PiB" або "EiB".
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:\", "/" і т.д.
Повертає 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, якщо цей рядок є коректним іменем файлу. Коректне ім'я файлу не може бути порожнім, починатися або закінчуватися пробілами або містити заборонені символи (: / \ ? * " | % < >).
Повертає 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
Повертає 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[] fruits = ["Яблуко", "Апельсин", "Груша", "Ківі"];
// У C# цей метод є статичним.
GD.Print(string.Join(", ", фрукти)); // Друкує "Яблуко, Апельсин, Груша, Ківі"
GD.Print(string.Join("---", фрукти)); // Друкує "Яблуко---Апельсин---Груша---Ківі"
Повертає копію рядка з особливими героями, які втекли за допомогою стандарта 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"
Повертає кількість символів у рядку. Порожні рядки ("") завжди повертають 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.
Повернення 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 num(number: float, decimals: int = -1) static 🔗
Перетворює float на рядкове представлення десяткового числа з кількістю десяткових знаків, указаною в decimals.
Якщо decimals дорівнює -1 за замовчуванням, представлення рядка може містити лише до 14 значущих цифр, причому цифри перед десятковою комою мають пріоритет над цифрами після коми.
Кінцеві нулі не включаються в рядок. Остання цифра заокруглена, а не скорочена.
String.num(3.141593) # Повертає "3.141593"
String.num(3.141593, 3) # Повертає "3.142"
String.num(3.14159300) # Повертає "3.141593"
# Тут остання цифра буде округлена в більшу сторону,
# що зменшує загальну кількість цифр, оскільки кінцеві нулі видаляються:
String.num(42.129999, 5) # Повертає "42.13"
# Якщо `decimals` не вказано, максимальна кількість значущих цифр становить 14:
String.num(-0.0000012345432123454321) # Повертає "-0.00000123454321"
String.num(-10000.0000012345432123454321) # Повертає "-10000.0000012345"
String num_int64(number: int, base: int = 10, capitalize_hex: bool = false) static 🔗
Перетворює заданий number на рядкове представлення з заданою основою параметр.
За замовчуванням base встановлено на десяткову систему числення (10). Інші поширені системи числення в програмуванні включають двійкову (2), вісімкову вісімкову (8), шістнадцяткову (16).
Якщо capitalize_hex має значення true, цифри вище 9 представлені у верхньому регістрі.
String num_scientific(number: float) static 🔗
Перетворює заданий number на рядкове представлення в науковій нотації.
var n = -5.2e8
print(n) # Prints -520000000
print(String.num_scientific(n)) # Prints -5.2e+08
// Цей метод не реалізовано в C#.
// Використовуйте `string.ToString()` з "e" для досягнення подібних результатів.
var n = -5.2e8f;
GD.Print(n); // Prints -520000000
GD.Print(n.ToString("e1")); // Prints -5.2e+008
Примітка: У C# цей метод не реалізовано. Щоб досягти подібних результатів, див. C# Стандартні рядки числового формату.
String num_uint64(number: int, base: int = 10, capitalize_hex: bool = false) static 🔗
Перетворення даної невизначеної int в рядок представлення, з заданим base.
За замовчуванням base встановлюється на десятковий (10). Інші загальні бази в програмування включають бінарні (2), octal (8), hexadecimal (16).
true, цифри вище 9 представлені у верхньому регістрі.
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.
Повернення копії цього рядка в зворотному порядку. Ця операція працює на пунктах коду унікоду, а не послідовностей точок коду, і може розбити речі, такі як складні листи або смайлики.
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]) # Виводить "Чотири"
// У C# немає методу String.RSplit().
String rstrip(chars: String) const 🔗
Видаляє набір символів, визначених у chars, з кінця рядка. Див. також lstrip().
Примітка: chars не є суфіксом. Використовуйте trim_suffix() для видалення одного суфікса, а не набору символів.
PackedByteArray sha1_buffer() const 🔗
Повертаємо SHA-1 хеш рядка як PackedByteArray.
Повертаємо SHA-1 хеш рядка в іншому String.
PackedByteArray sha256_buffer() const 🔗
Повертаємо SHA-256 хеш рядка як PackedByteArray.
Повертаємо 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]) # Виводить "Три, Чотири"
// `Split()` C# не підтримує параметр `maxsplit`.
var someArray = "One,Two,Three".Split(",");
GD.Print(someArray[0]); // Виводить "One"
GD.Print(someArray[1]); // Друкує "Два"
GD.Print(someArray[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. Цей метод зупиняється на першому нечисловому символі, за винятком першої десяткової коми (.) і літери експоненти (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. Цей метод видаляє будь-який нечисловий символ і зупиняється на першій десятковій комі (.). Дивіться також 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"
"Node2D".ToKebabCase(); // Повертає "node-2d"
"2nd place".ToKebabCase(); // Повертає "2-nd-place"
"Texture3DAssetFolder".ToKebabCase(); // Повертає "texture-3d-asset-folder"
Повертає рядок, що перетворюється на ``низ ``.
PackedByteArray to_multibyte_char_buffer(encoding: String = "") const 🔗
Перетворює рядок на системну багатобайтову кодову сторінку, закодовану як PackedByteArray. Якщо перетворення не вдається, повертається порожній масив.
Дозволені значення для encoding залежать від системи. Якщо encoding – це порожній рядок, використовується системне кодування за замовчуванням.
Для Windows див. Ідентифікатори кодових сторінок імена .NET.
Для macOS та Linux/BSD див. документацію до бібліотеки
libiconvтаiconv --listдля списку підтримуваних кодувань.
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"
"Node2D".ToSnakeCase(); // Повертає "node_2d"
"2 місце".ToSnakeCase(); // Повертає "2_nd_place"
"Texture3DAssetFolder".ToSnakeCase(); // Повертає "texture_3d_asset_folder"
Повертає рядок, що перетворюється на 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.
Див. також chr(), @GDScript.char() та @GDScript.ord().
Декодує рядок з його формату, закодованого за URL-адресою. Цей метод призначений для правильного декодування параметрів в URL-адресі під час отримання HTTP-запиту. Див. також uri_encode().
var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
print(url.uri_decode()) # Виводить "$DOCS_URL/?highlight=Godot Engine:docs"
var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
GD.Print(url.URIDecode()) // Виводить "$DOCS_URL/?highlight=Godot Engine:docs"
Примітка: Цей метод декодує + як пробіл.
Кодує рядок до 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"
var prefix = "$DOCS_URL/?highlight=";
var url = prefix + "Godot Engine:docs".URIEncode();
GD.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, символи одинарних лапок (') і подвійних лапок (") також екрануються.
Повертає копію рядка з вбитими символами, заміненими на їх значення відповідно до стандарту XML.
Описи операторів
bool operator !=(right: String) 🔗
Повертає true, якщо обидва рядки не містять однакову послідовність символів.
bool operator !=(right: StringName) 🔗
Повертає true, якщо це String не еквівалентно даній StringName.
String operator %(right: Variant) 🔗
Форматує String, замінюючи заповнювачі одним або декількома параметрами. Щоб передати кілька параметрів, right має бути Array.
print("I caught %d fishes!" % 2) # Виводить "I caught 2 fishes!"
var my_message = "Подорож до %s зі швидкістю %2,2f км/год."
var location = "Deep Valley"
var speed = 40,3485
print(my_message % [location, speed]) # Виводить "Подорож до Deep Valley зі швидкістю 40,35 км/год."
Додаткову інформацію див. у посібнику Рядки формату GDScript.
Примітка: у C# цей оператор недоступний. Натомість подивіться , як інтерполювати рядки за допомогою «$».
String operator +(right: String) 🔗
Додатки right в кінці цього String, також відомий як рядок конкатенації.
String operator +(right: StringName) 🔗
Додаток right в кінці цього String, повернення String. Це також відомий як рядок конкатенації.
bool operator <(right: String) 🔗
Повертає true, якщо зліва String надходить до right в Unicodeorder, який грубо відповідає алфавітному порядку. Корисно для сортування.
bool operator <=(right: String) 🔗
Повертає true, якщо зліва String надходить до right в Unicodeorder, який грубо відповідає алфавітному порядку, або якщо обидва рівні.
bool operator ==(right: String) 🔗
Повертає true, якщо обидва рядки містять однакову послідовність символів.
bool operator ==(right: StringName) 🔗
Повертає true, якщо це String еквівалентно даній StringName.
bool operator >(right: String) 🔗
Повертає true, якщо зліва String надходить після right в Юнікод замовлення, який грубо відповідає алфавітному порядку. Корисно для сортування.
bool operator >=(right: String) 🔗
Повертає true, якщо зліва String надходить після right в Unicodeorder, який грубо відповідає алфавітному порядку, або якщо обидва рівні.
String operator [](index: int) 🔗
Повертає новий рядок String, який містить лише символ у index. Індекси починаються з 0. Якщо index більше або дорівнює 0, символ вибирається, починаючи з початку рядка. Якщо index є від'ємним значенням, він вибирається, починаючи з кінця. Доступ до рядка за межами дозволеного значення спричинить помилку під час виконання, що призупинить виконання проекту, якщо його запустити з редактора.