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 с C#. Подробнее см. API различия C# и GDScript.
Конструкторы
StringName(from: StringName) |
|
StringName(from: String) |
Методы
Операторы
operator !=(right: String) |
|
operator !=(right: StringName) |
|
operator %(right: Variant) |
|
operator +(right: String) |
|
operator +(right: StringName) |
|
operator <(right: StringName) |
|
operator <=(right: StringName) |
|
operator ==(right: String) |
|
operator ==(right: StringName) |
|
operator >(right: StringName) |
|
operator >=(right: StringName) |
Описания конструктора
StringName StringName() 🔗
Создает пустой StringName.
StringName StringName(from: StringName)
Создает 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. Строка может иметь необязательный префикс "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() # Возвращает "Scene File Path"
"2D, FPS, PNG".capitalize() # Возвращает "2d, Fps, Png"
"move_local_x".Capitalize(); // Возвращает "Move Local X"
"sceneFile_path".Capitalize(); // Возвращает "Scene File Path"
"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
GD.Print("Node".Contains("de")); // Выводит True
GD.Print("team".Contains("I")); // Выводит False
Если вам нужно узнать, где в строке находится what, используйте find(). См. также containsn().
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 🔗
Returns the index of the first occurrence of what in this string, or -1 if there are none. The search's start can be specified with from, continuing to the end of the string.
print("Team".find("I")) # Prints -1
print("Potato".find("t")) # Prints 2
print("Potato".find("t", 3)) # Prints 4
print("Potato".find("t", 5)) # Prints -1
GD.Print("Team".Find("I")); // Prints -1
GD.Print("Potato".Find("t")); // Prints 2
GD.Print("Potato".Find("t", 3)); // Prints 4
GD.Print("Potato".Find("t", 5)); // Prints -1
Note: If you just want to know whether the string contains what, use contains(). In GDScript, you may also use the in operator.
Note: A negative value of from is converted to a starting index by counting back from the last possible index with enough space to find what.
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 будут заранее заменены соответствующими ключами. Элементы массива используют свои индексы в качестве ключей.
# Выводит "Waiting for Godot is a play by Samuel Beckett, and Godot Engine is named after it."
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"]))
# Выводит "User 42 is Godot."
print("User {id} is {name}.".format({"id": 42, "name": "Godot"}))
Некоторая дополнительная обработка выполняется, когда values является Array. Если placeholder не содержит подчеркивания, элементы массива values будут использоваться для замены одного вхождения placeholder по порядку; Если элемент values является другим массивом из 2 элементов, он будет интерпретироваться как пара ключ-значение.
# Выводит "User 42 is Godot."
print("User {} is {}.".format([42, "Godot"], "{}"))
print("User {id} is {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, не всех сразу. Это означает, что если какой-либо элемент вставлен и содержит другой placeholder, он может быть изменен следующей заменой. Хотя это может быть очень полезно, часто это приводит к неожиданным результатам. Если это не обязательно, убедитесь, что элементы values не содержат placeholder.
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 равен "/path/to"
Если строка является допустимым путем к файлу, возвращает полный путь к файлу без расширения.
var base = "/path/to/file.txt".get_basename() # base равен "/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() # 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 🔗
Разделяет строку, используя символ Unicode с кодом delimiter и возвращает подстроку с индексом slice. Возвращает пустую строку, если slice не существует.
Это быстрее, чем split(), если вам нужна только одна подстрока.
Возвращает 32-битное хэш-значение, представляющее содержимое строки.
Примечание: Строки с одинаковыми хэш-значениями не гарантированно будут одинаковыми из-за коллизий хэшей. Напротив, строки с разными хэш-значениями гарантированно будут разными.
PackedByteArray hex_decode() const 🔗
Декодирует шестнадцатеричную строку как PackedByteArray.
var text = "hello world"
var encoded = text.to_utf8_buffer().hex_encode() # выводит "68656c6c6f20776f726c64"
print(encoded.hex_decode().get_string_from_utf8())
var text = "hello world";
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 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 = "Wow, incredible!"
print("inedible".is_subsequence_of(text)) # Выводит true
print("Word!".is_subsequence_of(text)) # Выводит true
print("Window".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, если эта строка представляет допустимое число с плавающей точкой. Допустимое число с плавающей точкой может содержать только цифры, одну десятичную точку (.) и букву экспоненты (e). Оно также может иметь префикс в виде положительного (+) или отрицательного (-) знака. Любое допустимое целое число также является допустимым числом с плавающей точкой (см. 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("Hello".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("állóképesség".is_valid_unicode_identifier()) # Выводит true
print("выносливость".is_valid_unicode_identifier()) # Выводит 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 = ["Apple", "Orange", "Pear", "Kiwi"]
print(", ".join(fruits)) # Выводит "Apple, Orange, Pear, Kiwi"
print("---".join(fruits)) # Выводит "Apple---Orange---Pear---Kiwi"
string[] fruits = ["Apple", "Orange", "Pear", "Kiwi"];
// В C# этот метод является статическим.
GD.Print(string.Join(", ", fruits)); // Выводит "Apple, Orange, Pear, Kiwi"
GD.Print(string.Join("---", fruits)); // Выводит "Apple---Orange---Pear---Kiwi"
Возвращает копию строки со специальными символами, экранированными с использованием стандарта 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 🔗
Соответствует ли простое выражение (также называемое «глоб» или «глоббинг»), где * соответствует нулю или более произвольным символам, а ? соответствует любому одиночному символу, кроме точки (.). Пустая строка или пустое выражение всегда оценивается как false.
bool matchn(expr: String) const 🔗
Соответствует ли простое выражение без учета регистра, где * соответствует нулю или более произвольным символам, а ? соответствует любому одиночному символу, кроме точки (.). Пустая строка или пустое выражение всегда оцениваются как 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 pad_decimals(digits: int) const 🔗
Форматирует строку, представляющую число, так, чтобы она содержала точное количество цифр digits после десятичной точки.
String pad_zeros(digits: int) const 🔗
Форматирует строку, представляющую число, так, чтобы она содержала точное количество цифр digits перед десятичной точкой.
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 🔗
Removes all occurrences of the characters in chars. See also 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 🔗
Заменяет все независимые от регистра вхождения what внутри строки на заданный forwhat.
Возвращает копию этой строки в обратном порядке. Эта операция работает с кодовыми точками Unicode, а не с последовательностями кодовых точек, и может сломать такие вещи, как составные буквы или эмодзи.
int rfind(what: String, from: int = -1) const 🔗
Returns the index of the last occurrence of what in this string, or -1 if there are none. The search's start can be specified with from, continuing to the beginning of the string. This method is the reverse of find().
Note: A negative value of from is converted to a starting index by counting back from the last possible index with enough space to find what.
Note: A value of from that is greater than the last possible index with enough space to find what is considered out-of-bounds, and returns -1.
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)) # Вывдит "o World!"
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 = "One,Two,Three,Four"
var some_array = some_string.rsplit(",", true, 1)
print(some_array.size()) # Выводит 2
print(some_array[0]) # Выводит "One,Two,Three"
print(some_array[1]) # Выводит "Four"
// В 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) # Выводит "path/file"
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]) # Выводит "Two"
print(some_array[2]) # Выводит "Three,Four"
// `Split()` в C# не поддерживает параметр `maxsplit`.
var someArray = "One,Two,Three".Split(",");
GD.Print(someArray[0]); // Выводит "One"
GD.Print(someArray[1]); // Выводит "Two"
GD.Print(someArray[2]); // Выводит "Three"
Примечание: Если вам нужна только одна подстрока из массива, рассмотрите возможность использования 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 равен [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).
Если left равен false, игнорирует начало строки. Аналогично, если right равен false, игнорирует конец строки.
String strip_escapes() const 🔗
Удаляет все экранированные символы из строки. К ним относятся все непечатаемые управляющие символы первой страницы таблицы ASCII (значения от 0 до 31), такие как символы табуляции (\t) и новой строки (\n, \r), но не пробелы.
String substr(from: int, len: int = -1) const 🔗
Возвращает часть строки из позиции from с длиной len. Если len равен -1 (по умолчанию), возвращает остаток строки, начиная с указанной позиции.
PackedByteArray to_ascii_buffer() const 🔗
Преобразует строку в ASCII/Latin-1 закодированный PackedByteArray. Этот метод немного быстрее, чем to_utf8_buffer(), но заменяет все неподдерживаемые символы пробелами. Это обратный метод 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 = "Hello!".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 = "Hello!".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 🔗
Возвращает строку, преобразованную в PascalCase.
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"
"2nd place".ToSnakeCase(); // Выводит "2_nd_place"
"Texture3DAssetFolder".ToSnakeCase(); // Выводит "texture_3d_asset_folder"
Возвращает строку, преобразованную в ВЕРХНИЙ РЕГИСТР.
PackedByteArray to_utf8_buffer() const 🔗
Преобразует строку в UTF-8 закодированный PackedByteArray. Этот метод немного медленнее, чем to_ascii_buffer(), но поддерживает все символы UTF-8. В большинстве случаев предпочтительнее использовать этот метод. Это обратный метод PackedByteArray.get_string_from_utf8().
PackedByteArray to_utf16_buffer() const 🔗
Преобразует строку в UTF-16 закодированный PackedByteArray. Это обратный метод PackedByteArray.get_string_from_utf16().
PackedByteArray to_utf32_buffer() const 🔗
Преобразует строку в UTF-32 закодированный PackedByteArray. Это обратный метод PackedByteArray.get_string_from_utf32().
PackedByteArray to_wchar_buffer() const 🔗
Преобразует строку в широкий символ (wchar_t, UTF-16 в Windows, UTF-32 на других платформах), закодированный PackedByteArray. Это обратный метод PackedByteArray.get_string_from_wchar().
String trim_prefix(prefix: String) const 🔗
Удаляет указанный prefix из начала строки или возвращает строку без изменений.
String trim_suffix(suffix: String) const 🔗
Удаляет указанный suffix из конца строки или возвращает строку без изменений.
int unicode_at(at: int) const 🔗
Возвращает код символа в позиции at.
См. также String.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, если StringName не эквивалентно заданной String.
bool operator !=(right: StringName) 🔗
Возвращает true, если StringName и right не ссылаются на одно и то же имя. Сравнения между StringName намного быстрее обычных сравнений String.
String operator %(right: Variant) 🔗
Форматирует StringName, заменяя заполнители (placeholders) одним или несколькими параметрами, возвращая String. Для передачи нескольких параметров right должен быть Array.
Дополнительную информацию см. в руководстве Строки формата GDScript.
Примечание: В C# этот оператор недоступен. Вместо этого см. как интерполировать строки с помощью "$".
String operator +(right: String) 🔗
Добавляет right в конец этого StringName, возвращая String. Это также известно как конкатенация строк.
String operator +(right: StringName) 🔗
Добавляет right в конец этого StringName, возвращая String. Это также известно как конкатенация строк.
bool operator <(right: StringName) 🔗
Возвращает true, если указатель left StringName находится перед right. Обратите внимание, что это не будет соответствовать их порядку Unicode.
bool operator <=(right: StringName) 🔗
Возвращает true, если указатель left StringName предшествует right или если они одинаковы. Обратите внимание, что это не будет соответствовать их порядку Unicode.
bool operator ==(right: String) 🔗
Возвращает true, если StringName эквивалентно заданной String.
bool operator ==(right: StringName) 🔗
Возвращает true, если StringName и right ссылаются на одно и то же имя. Сравнения между StringName намного быстрее обычных сравнений String.
bool operator >(right: StringName) 🔗
Возвращает true, если указатель left StringName находится после right. Обратите внимание, что это не будет соответствовать их порядку Unicode.
bool operator >=(right: StringName) 🔗
Возвращает true, если указатель left StringName следует за right или они одинаковы. Обратите внимание, что это не будет соответствовать их порядку Unicode.