Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

StringName

Un type intégré pour les chaînes uniques.

Description

Les StringNames sont des chaînes immuables conçues pour une représentation générale des noms uniques (également appelé « string interning », litt. internement de chaîne). Deux StringNames avec la même valeur sont le même objet. La comparaison est extrêmement rapide par rapport aux String habituelles.

Vous passerez généralement un String à des méthodes qui s'attendent à un StringName et il sera automatiquement converti (souvent au moment de la compilation), mais dans de rares cas vous pouvez construire un StringName en avance avec le constructeur StringName ou, en GDScript, la syntaxe littérale )&"exemple". La construction manuelle d'un StringName vous permet de contrôler lorsque la conversion depuis String se produit ou d'utiliser le littéral et d'empêcher les conversions entièrement.

Voir aussi NodePath, qui est un concept similaire spécifiquement conçu pour stocker des chemins d'arborescence de scène préparés.

Toutes les méthodes de String sont également disponibles dans cette classe. Ils convertissent le StringName en une chaîne, et ils renvoient également une chaîne. Ceci est très inefficace et ne devrait être utilisé que si la chaîne est souhaitée.

Note : En C#, une conversion explicite à System.String est nécessaire pour utiliser les méthodes énumérées sur cette page. Utilisez la méthode ToString() pour cast une StringName en une chaîne, puis utilisez les méthodes équivalentes dans System.String ou StringExtensions.

Note : Dans un contexte booléen, StringName évaluera à false si elle est vide (StringName("")). Sinon, un StringName évaluera toujours à true.

Note

Il y a des différences notables dans l'utilisation de cette API en C#. Voir Différences de l'API C# par rapport à GDScript pour plus d'informations.

Constructeurs

StringName

StringName()

StringName

StringName(from: StringName)

StringName

StringName(from: String)

Méthodes

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

Opérateurs

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)


Descriptions des constructeurs

StringName StringName() 🔗

Construit un StringName vide.


StringName StringName(from: StringName)

Construit une StringName en tant que copie de la StringName donnée.


StringName StringName(from: String)

Crée un nouveau StringName de la String donnée. En GDScript, StringName("exemple") est équivalent à &"exemple".


Descriptions des méthodes

bool begins_with(text: String) const 🔗

Renvoie true si la chaîne de caractères commence par le texte text donné. Voir aussi ends_with().


PackedStringArray bigrams() const 🔗

Renvoie un tableau contenant les « bigrams » (paires de lettres consécutives) de cette chaîne de caractères.

print("Lève toi !".bigrams()) # Affiche ["Lè", "èv" ,"ve", "e ", " t", "to", "oi", "i!"]

int bin_to_int() const 🔗

Convertit la chaîne représentant un nombre binaire en une entier int. La chaîne peut éventuellement être préfixée avec "0b", et un préfixe supplémentaire - pour les nombres négatifs.

print("101".bin_to_int()) # Affiche 5
print("0b101".bin_to_int()) # Affiche 5
print("-0b10".bin_to_int()) # Affiche -2

String c_escape() const 🔗

Renvoie une copie de la chaîne de caractères avec les caractères spéciaux échappés selon le standard du langage C.


String c_unescape() const 🔗

Renvoie une copie de la chaîne avec les caractères d'échappement remplacés par leurs significations. Les caractères d'échappement supportés sont : \', \", \\, \a, \b, \f, \n, \r, \t, \v.

Note : Contrairement au parseur GDScript, cette méthode ne supporte pas la séquence d'échappement de caractères Unicode \uXXXX.


String capitalize() const 🔗

Change l'apparence de la chaîne de caractères : remplace les tirets bas (_) par des espaces, ajoute des espaces avant les lettres majuscules au milieu d'un mot, convertit toutes les lettres en minuscule, puis convertit la première lettre et chacune après un espace en majuscules.

"move_local_x".capitalize() # Renvoie "Move Local X"
"sceneFile_path".capitalize() # Renvoie "Scene File Path"
"2D, FPS, PNG".capitalize() # Renvoie "2d, Fps, Png"

int casecmp_to(to: String) const 🔗

Effectue une comparaison sensible à la casse avec une autre chaîne. Renvoie -1 si c’est inferieur, 1 si c’est plus grand, ou 0 si c’est égal. "Inférieur à" et "supérieur à" sont déterminés par points de code Unicode de chaque chaîne, qui correspond approximativement à l'ordre alphabétique.

Avec des longueurs de chaîne différentes, renvoie 1 si cette chaîne est plus longue que la chaîne to, ou -1 si elle est plus courte. Notez que la longueur des chaînes vides est toujours 0.

Pour obtenir un résultat booléen bool d'une comparaison de chaînes, utilisez plutôt l'opérateur =. Voir aussi nocasecmp_to(), filecasecmp_to(), et naturalcasecmp_to().


bool contains(what: String) const 🔗

Renvoie true si la chaîne contient la chaîne what. En GDScript, cela correspond à l'opérateur in.

print("Nœud".contains("No") # Affiche true
print("équipe".contains("je") # Affiche false
print("je" dans "équipe") # Affiche false

Si vous devez savoir où what se trouve dans la chaîne, utilisez find(). Voir aussi containsn().


bool containsn(what: String) const 🔗

Renvoie true si la chaîne contient la chaîne what, ignorant la casse.

Si vous devez savoir où what se trouve dans la chaîne, utilisez findn(). Voir aussi contains().


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

Renvoie le nombre d’occurrences de la sous-chaîne what entre les positions from et to. Si to vaut 0, la recherche continue jusque la fin de la chaîne.


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

Renvoie le nombre d’occurrences de la sous-chaîne what entre les positions from et to, ignorant la casse. Si to vaut 0, la recherche continue jusque la fin de la chaîne.


String dedent() const 🔗

Renvoie une copie de la chaîne de caractères avec l'indentation (les tabulations et les espaces) retirée. Voir aussi indent() pour ajouter une indentation.


bool ends_with(text: String) const 🔗

Renvoie true si la chaîne de caractères finit par la chaîne de caractères text donnée. Voir aussi begins_with().


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

Renvoie une chaîne avec les chars premiers caractères effacés à partir d’une certaine position. Si chars dépasse la longueur de la chaîne, compte tenu de la position spécifiée, moins de caractères seront effacés de la chaîne renvoyée. Renvoie une chaîne vide si position ou chars est négatif. Renvoie la chaîne originale non modifiée si chars est à 0.


int filecasecmp_to(to: String) const 🔗

Comme naturalcasecmp_to() mais priorise les chaînes commençant par des points (.) et des tirets bas (_)) avant tout autre caractère. Utile lors du tri des dossiers ou des noms de fichiers.

Pour obtenir un résultat booléen bool d’une comparaison de chaîne, utilisez plutôt l’opérateur =. Voir aussi filenocasecmp_to(), naturalcasecmp_to(), et casecmp_to().


int filenocasecmp_to(to: String) const 🔗

Comme naturalnocasecmp_to() mais priorise les chaînes commençant par des points (.) et des tirets bas (_)) avant tout autre caractère. Utile lors du tri des dossiers ou des noms de fichiers.

Pour obtenir un résultat booléen bool d’une comparaison de chaîne, utilisez plutôt l’opérateur =. Voir aussi filecasecmp_to(), naturalnocasecmp_to(), et nocasecmp_to().


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

Renvoie l’index de la première occurrence de what dans cette chaîne, ou -1 s’il n’y en a pas. Le début de la recherche peut être spécifié avec from, continuant jusqu’à la fin de la chaîne.

print("équipe".find("je") # Affiche -1

print("Patate".find("t") # Affiche 2
print("Patate".find("t", 3)) # Affiche 4
print("Patate".find("t", 5) # Affiche -1

Note : Si vous voulez simplement savoir si la chaîne contient what, utilisez contains(). En GDScript, vous pouvez également utiliser l'opérateur in.

Note : Une valeur négative de from est convertie en un index de départ en comptant à partir du dernier index possible avec suffisamment d'espace pour trouver what.


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

Renvoie l’index de la première occurrence insensible à la casse de what dans cette chaîne, ou -1 s’il n’y en a pas. L’index de recherche de départ peut être spécifié avec from, continuant jusqu’à la fin de la chaîne.


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

Formate la chaîne en remplaçant toutes les occurrences de placeholder par les éléments de values.

values peut être un Dictionary, un Array ou un Object. Tout tiret-bas dans placeholder sera remplacé par les clés correspondantes à l'avance. Les éléments d'un tableau utilisent leur index comme clés.

# Affiche "En attendant Godot est une pièce de Samuel Beckett, et Godot Engine est nommé d'après elle."
var utiliser_valeurs_tableau = "En attendant {0} est une pièce de {1}, et {0} Engine est nommé d'après elle."
print(utiliser_valeurs_tableau.format(["Godot", "Samuel Beckett"]))

# Affiche "L'utilisateur 42 est Godot."
print("L'utilisateur {id} est {nom}.".format({"id": 42, "nom": "Godot"}))

Des manipulations supplémentaires sont effectués lorsque values est un Array. Si placeholder ne contient pas de tiret-bas, les éléments du tableau values seront utilisés pour remplacer une occurrence du placeholder dans l'ordre, si un élément de values est un autre tableau de 2 éléments, il sera interprété comme une paire de valeurs-clés.

# Affiche "L'utilisateur 42 est Godot."
print("L'utilisateur {} est {}.".format([42, "Godot"], "{}"))
print("L'utilisateur {id} est {nom}.".format([["id", 42], ["nom", "Godot"]))

Lorsque vous passez un Object, les noms de propriétés de Object.get_property_list() sont utilisés comme clés.

# Affiche "Visible true, position (0, 0)"
var noeud = Node2D.new()
print("Visible {visible}, position {position}".format(noeud))

Voir aussi le tutoriel chaîne de format GDScript.

Note : Chaque remplacement est effectué séquentiellement pour chaque élément de values, pas tous à la fois. Cela signifie que si un élément est inséré et qu'il contient un autre placeholder, il peut être modifié par le prochain remplacement. Bien que cela puisse être très utile, cela provoque souvent des résultats inattendus. Si cela n'est pas nécessaire, assurez-vous que les éléments de values ne contiennent pas de placeholders.

print("{0} {1}".format(["{1}", "x"])) # Affiche "x x"
print("{0} {1}".format(["x", "{0}"])) # Affiche "x {0}"
print("{a} {b}".format({"a": "{b}", "b": "c"})) # Affiche "c c"
print("{a} {b}".format({"b": "c", "a": "{b}"})) # Affiche "{b} c"

Note: En C#, il est plutôt recommandé d'interpoler les chaînes avec "$".


String get_base_dir() const 🔗

Si la chaîne est un chemin de fichier valide, renvoie le nom du répertoire de base.

var chemin_rep = "/chemin/vers/fichier.txt".get_base_dir() # chemin_rep vaut "/chemin/vers"

String get_basename() const 🔗

Si la chaîne est un chemin de fichier valide, renvoie le chemin de fichier complet, sans l'extension.

var base = "/chemin/vers/fichier.txt".get_basename() # la base est "/chemin/vers/fichier"

String get_extension() const 🔗

Si la chaîne est un nom ou un chemin de fichier valide, renvoie l'extension de fichier sans le point du début (.). Sinon, renvoie une chaîne vide.

var a = "/chemin/vers/fichier.txt".get_extension() # a vaut "txt"
var b = "cool.txt".get_extension()          # b vaut "txt"
var c = "cool.font.tres".get_extension()    # c vaut "tres"
var d = ".pack1".get_extension()            # d vaut "pack1"

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

String get_file() const 🔗

Si la chaîne est un chemin de fichier valide, renvoie le nom du fichier, avec l'extension.

var fichier = "/chemin/vers/icone.png".get_file() # chemin vaut "icone.png"

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

Divise la chaîne en utilisant un délimiteur delimiter et renvoie la sous-chaîne à l'index slice. Renvoie la chaîne d'origine si delimiter n’apparaît pas dans la chaîne. Renvoie une chaîne vide si l'index slice n'existe pas.

Ceci est plus rapide que split(), si vous n'avez besoin qu'une seule sous-chaîne.

print("je/suis/exemple/hello".get_slice("/", 2)) # Affiche "exemple"

int get_slice_count(delimiter: String) const 🔗

Renvoie le nombre total de tranches quand la chaîne est divisée avec le délimiteur delimiter donné (voir split()).


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

Divise la chaîne en utilisant un caractère Unicode avec le code delimiter et renvoie la sous-chaîne à l'index slice. Renvoie une chaîne vide si l'index slice n'existe pas.

Ceci est plus rapide que split(), si vous n'avez besoin que d'une sous-chaîne.


int hash() const 🔗

Renvoie la valeur de hachage de 32 bits représentant le contenu de la chaîne.

Note : Des chaînes avec des valeurs de hachage identiques ne sont pas garanties d'être identiques, à cause des collisions de hachage. À l'inverse, les chaînes avec des valeurs de hachage différentes sont garanties d'être différentes.


PackedByteArray hex_decode() const 🔗

Décode une chaîne hexadécimale en un PackedByteArray.

var texte = "bonjour le monde"
var encode = texte.to_utf8_buffer().hex_encode() # outputs "626f6e6a6f7572206c65206d6f6e6465"
print(encode.hex_decode().get_string_from_utf8())

int hex_to_int() const 🔗

Convertit la chaîne représentant un nombre hexadécimal en un entier int. La chaîne peut éventuellement être préfixée avec "0x", et un préfixe supplémentaire - pour les nombres négatifs.

print("0xff".hex_to_int()) # Affiche 255
print("ab".hex_to_int())   # Affiche 171

String indent(prefix: String) const 🔗

Indente chaque ligne de la chaîne avec le préfixe prefix donné. Les lignes vides ne sont pas indentées. Voir aussi dedent() pour supprimer l'indentation.

Par exemple, la chaîne peut être indentée avec deux tabulations en utilisant "\t\t", ou quatre espaces utilisant "    ".


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

Insère la chaîne what à la position position donnée dans la chaîne.


bool is_absolute_path() const 🔗

Renvoie true si la chaîne est un chemin vers un fichier ou un répertoire, et son point de départ est explicitement défini. Cette méthode est le contraire de is_relative_path().

Cela inclut tous les chemins commençant par "res://", "user://", "C:\", "/", etc.


bool is_empty() const 🔗

Renvoie true si la longueur de la chaîne est de 0 (""). Voir aussi length().


bool is_relative_path() const 🔗

Renvoie true si la chaîne est un chemin, et son point de départ est dépendant du contexte. Le chemin pourrait commencer du répertoire courant, ou le Node actuel (si la chaîne est dérivée d'un NodePath), et peut parfois être préfixée avec "./". Cette méthode est le contraire de is_absolute_path().


bool is_subsequence_of(text: String) const 🔗

Renvoie true si tous les caractères de cette chaîne peuvent être trouvés dans le texte text dans leur ordre original. Ce n'est pas la même chose que contains().

var texte = "Wow, incroyable!"

print("inroable".is_subsequence_of(texte)) # Affiche true
print("Woya!".is_subsequence_of(texte))) # Affiche true
print("Window".is_subsequence_of(texte))) # Affiche false
print("".is_subsequence_of(text)) # Affiche true

bool is_subsequence_ofn(text: String) const 🔗

Renvoie true si tous les caractères de cette chaîne peuvent être trouvés dans le texte text dans leur ordre original, ignorant la casse. Ce n'est pas la même chose que containsn().


bool is_valid_ascii_identifier() const 🔗

Renvoie true si cette chaîne est un identifiant ASCII valide. Un identifiant ASCII valide ne peut contenir que des lettres, des chiffres et des tirets bas (_) et le premier caractère ne peut pas être un chiffre.

print("node_2d".is_valid_ascii_identifier())    # Affiche true
print("TYPE_FLOAT".is_valid_ascii_identifier()) # Affiche true
print("1st_method".is_valid_ascii_identifier()) # Affiche false
print("MyMethod#2".is_valid_ascii_identifier()) # Affiche false

Voir aussi is_valid_unicode_identifier().


bool is_valid_filename() const 🔗

Renvoie true si cette chaîne est un nom de fichier valide. Un nom de fichier valide ne peut pas être vide, commencer ou finir avec des espaces, ou contenir des caractères qui ne sont pas autorisés (: / \ ? * " | % < >).


bool is_valid_float() const 🔗

Renvoie true si cette chaîne représente un nombre à virgule flottante valide. Un flottant valide ne peut contenir que des chiffres, un point décimal (.), et la lettre d'exposant (e). Il peut également être préfixé avec un signe positif (+) ou négatif (-). Tout entier valide est également un flottant valide (voir is_valid_int()). Voir aussi to_float().

print("1.7".is_valid_float())   # Affiche true
print("24".is_valid_float())    # Affiche true
print("7e3".is_valid_float())   # Affiche true
print("Hello".is_valid_float()) # Affiche false

bool is_valid_hex_number(with_prefix: bool = false) const 🔗

Renvoie true si cette chaîne est un nombre hexadécimal valide. Un nombre hexadécimal valide ne contient que des chiffres ou des lettres de A à F (en majuscule ou minuscule), et peut être préfixé avec un signe positif (+) ou négatif (-).

Si with_prefix vaut true, le nombre hexadécimal doit être préfixé par "0x" pour être considéré valide.

print("A08E".is_valid_hex_number())    # Affiche true
print("-AbCdEf".is_valid_hex_number()) # Affiche true
print("2.5".is_valid_hex_number())     # Affiche false

print("0xDEADC0DE".is_valid_hex_number(true)) # Affiche true

bool is_valid_html_color() const 🔗

Renvoie true si cette chaîne est une couleur valide dans la notation HTML hexadécimale. La chaîne doit être une valeur hexadécimale (voir is_valid_hex_number()) de 3, 4, 6 ou 8 chiffres, et peut être préfixée par un signe de croisillon (#). D'autres notations HTML pour les couleurs, telles que les noms ou hsl(), ne sont pas considérées valides. Voir aussi Color.html().


bool is_valid_identifier() const 🔗

Obsolète : Use is_valid_ascii_identifier() instead.

Renvoie true si cette chaîne est un identifiant valide. Un identifiant valide ne peut contenir que des lettres, des chiffres et des tirets du bas (_), et le premier caractère ne peut pas être un chiffre.

print("node_2d".is_valid_identifier())    # Affiche true
print("TYPE_FLOAT".is_valid_identifier()) # Affiche true
print("1ere_methode".is_valid_identifier()) # Affiche false
print("MaMethode#2".is_valid_identifier()) # Affiche false

bool is_valid_int() const 🔗

Renvoie true si cette chaîne représente un entier valide. Un entier valide ne contient que des chiffres et peut être préfixé avec un signe positif (+) ou négatif (-). Voir aussi to_int().

print("7".is_valid_int()) # Affiche true
print("1.65".is_valid_int()) # Affiche false
print("Hello".is_valid_int()) # Affiche false
print("+3".is_valid_int()) # Affiche true
print("-12".is_valid_int()) # Affiche true

bool is_valid_ip_address() const 🔗

Renvoie true si cette chaîne représente une adresse IPv4 ou IPv6 bien formatée. Cette méthode considère les adresses IP réservées comme "0.0.0.0" et "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff" comme valides.


bool is_valid_unicode_identifier() const 🔗

Renvoie true si cette chaîne est un identifiant Unicode valide.

Un identifiant Unicode valide doit commencer par un caractère Unicode de la classe XID_Start ou "_", et peut contenir des caractères Unicode de la classe XID_Continue dans les autres positions.

print("node_2d".is_valid_unicode_identifier())      # Affiche true
print("1ere_methode".is_valid_unicode_identifier())   # Affiche false
print("MaMethode#2".is_valid_unicode_identifier())   # Affiche false
print("állóképesség".is_valid_unicode_identifier()) # Affiche true
print("выносливость".is_valid_unicode_identifier()) # Affiche true
print("体力".is_valid_unicode_identifier())         # Affiche true

Voir aussi is_valid_ascii_identifier().

Note : Cette méthode vérifie les identifiants de la même manière en GDScript. Voir TextServer.is_valid_identifier() pour des vérifications plus avancées.


String join(parts: PackedStringArray) const 🔗

Renvoie la concaténation des éléments du tableau parts, avec chaque élément séparé par la chaîne appelant cette méthode. Cette méthode est l'opposé de split().

var fruits = ["Pomme", "Orange", "Poire", "Kiwi"]

print(", ".join(fruits))  # Affiche "Pomme, Orange, Poire, Kiwi"
print("---".join(fruits)) # Affiche "Pomme---Orange---Poire---Kiwi"

String json_escape() const 🔗

Renvoie une copie de la chaîne avec les caractères spéciaux échappés en utilisant la norme JSON. Comme elle correspond fortement à la norme C, il est possible d'utiliser c_unescape() pour échapper la chaîne, si nécessaire.


String left(length: int) const 🔗

Renvoie les length premiers caractères du début de la chaîne. Si length est négatif, retire les length derniers caractères de la fin de la chaîne.

print("Bonjour monde!".left(3)) # Affiche "Bon"
print("Bonjour monde!".left(-4)) # Affiche "Bonjour mo"

int length() const 🔗

Renvoie le nombre de caractères dans la chaîne. Les chaînes vides (") renvoient toujours 0. Voir aussi is_empty().


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

Formate la chaîne pour qu'elle ait au moins min_length caractères en ajoutant character caractères à gauche de la chaîne, si nécessaire. Voir aussi rpad().


String lstrip(chars: String) const 🔗

Retire un ensemble de caractères définis dans chars du début de la chaîne. Voir aussi rstrip().

Note : chars n'est pas un préfixe. Utilisez trim_prefix() pour supprimer un seul préfixe, plutôt qu'un ensemble de caractères.


bool match(expr: String) const 🔗

Fait une correspondance simple de l'expression (aussi appelé "glob" ou "globbing"), où * correspond à 0 ou plus caractères arbitraires, et ? correspond à n'importe quel caractère unique sauf un point (.). Une chaîne ou expression vide est toujours évaluée à false.


bool matchn(expr: String) const 🔗

Fait une correspondance simple sensible à la casse de l'expression, où * correspond à 0 ou plus caractères arbitraires, et ? correspond à n'importe quel caractère unique sauf un point (.). Une chaîne ou expression vide est toujours évaluée à false.


PackedByteArray md5_buffer() const 🔗

Renvoie le hachage MD5 de la chaîne en tant que PackedByteArray.


String md5_text() const 🔗

Renvoie le hachage MD5 de la chaîne en tant qu'autre String.


int naturalcasecmp_to(to: String) const 🔗

Effectue une comparaison dans l'ordre naturel, sensible à la casse avec une autre chaîne. Renvoie -1 si inférieure à, 1 si plus supérieure à, ou 0 si égales. "Inférieure à" ou "supérieure à" sont déterminés par les points de code Unicode de chaque chaîne, qui correspond approximativement à l'ordre alphabétique.

Lorsqu'utilisé pour le tri, la comparaison en ordre naturel ordonne des séquences de nombres par la valeur combinée de chaque chiffre comme généralement attendu, au lieu de la valeur du chiffre seul. Une séquence de chaînes de nombres triée sera ["1, "2", "3", ...], pas ["1", "10", "2", "3", ...].

Avec différentes longueurs de chaîne, renvoie 1 si cette chaîne est plus longue que la chaîne to, ou -1 si elle est plus courte. Notez que la longueur des chaînes vides est toujours de 0.

Pour obtenir un résultat en bool d'une comparaison de chaîne, utilisez plutôt l'opérateur ==. Voir aussi naturalnocasecmp_to(), filecasecmp_to(), et nocasecmp_to().


int naturalnocasecmp_to(to: String) const 🔗

Effectue une comparaison dans l'ordre naturel, insensible à la casse avec une autre chaîne. Renvoie -1 si inférieure à, 1 si plus supérieure à, ou 0 si égales. "Inférieure à" ou "supérieure à" sont déterminés par les points de code Unicode de chaque chaîne, qui correspond approximativement à l'ordre alphabétique.

Lorsqu'utilisé pour le tri, la comparaison en ordre naturel ordonne des séquences de nombres par la valeur combinée de chaque chiffre comme généralement attendu, au lieu de la valeur du chiffre seul. Une séquence de chaînes de nombres triée sera ["1, "2", "3", ...], pas ["1", "10", "2", "3", ...].

Avec différentes longueurs de chaîne, renvoie 1 si cette chaîne est plus longue que la chaîne to, ou -1 si elle est plus courte. Notez que la longueur des chaînes vides est toujours de 0.

Pour obtenir un résultat en bool d'une comparaison de chaîne, utilisez plutôt l'opérateur ==. Voir aussi naturalnocasecmp_to(), filecasecmp_to(), et nocasecmp_to().


int nocasecmp_to(to: String) const 🔗

Effectue une comparaison insensible à la casse avec une autre chaîne. Renvoie -1 si inférieure à 1 si plus supérieure à, ou 0 si égales. "Inférieure à" ou "supérieure à" sont déterminés par les points de code Unicode de chaque chaîne, qui correspond approximativement à l'ordre alphabétique. En interne, les caractères minuscules sont convertis en majuscules pour la comparaison.

Avec des longueurs de chaîne différentes, renvoie 1 si cette chaîne est plus longue que la chaîne to, ou -1 si elle est plus courte. Notez que la longueur des chaînes vides est toujours de 0.

Pour obtenir un résultat en bool d'une comparaison de chaîne, utilisez plutôt l'opérateur ==. Voir aussi casecmp_to(), filenocasecmp_to(), et naturalnocasecmp_to().


String pad_decimals(digits: int) const 🔗

Formate la chaîne représentant un nombre pour avoir exactement digits chiffres après la virgule.


String pad_zeros(digits: int) const 🔗

Formate la chaîne représentant un nombre pour avoir exactement digits chiffres avant la virgule.


String path_join(path: String) const 🔗

Concatène path à la fin de la chaîne comme sous-chemin, ajoutant / si nécessaire.

Exemple : "cest/le".path_join("chemin") == "cest/le/chemin".


String remove_char(what: int) const 🔗

Retire toutes les occurrences du caractère Unicode avec le code what. Version plus rapide de replace() lorsque la clé n'est longue que d'un caractère et que le remplacement est "".


String remove_chars(chars: String) const 🔗

Removes all occurrences of the characters in chars. See also remove_char().


String repeat(count: int) const 🔗

Répète cette chaîne un certain nombre de fois. count doit être supérieur à 0. Sinon, renvoie une chaîne vide.


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

Remplace toutes les occurrences de la chaîne what dans la chaîne courante avec la chaîne forwhat donnée.


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

Remplace toutes les occurrences du caractère Unicode avec le code key par le caractère Unicode avec le code with. Version plus rapide de replace() lorsque la clé est composée seulement d'un caractère. Pour obtenir un seul caractère, utilisez "X".unicode_at(0) (notez que certaines chaînes, comme les lettres composés et les émojis, peuvent être composées de plusieurs codes unicode, et ne fonctionneront pas avec cette méthode, utilisez length() pour vous en assurer).


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

Remplace toute occurrence des caractères de la chaîne keys par le caractère Unicode avec le code with. Voir aussi replace_char().


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

Remplace toutes les occurrences insensibles à la casse de la chaîne what à l'intérieur de la chaîne par la chaîne forwhat donnée.


String reverse() const 🔗

Renvoie la copie de cette chaîne en ordre inverse. Cette opération fonctionne sur des points de code unicode, plutôt que sur des séquences de points de code, et peut casser des choses comme les lettres composées ou les emojis.


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 🔗

Renvoie l'index de la dernière occurrence sensible à la casse de la chaîne what dans cette chaîne, ou -1 s'il n'y en a pas. Le début de la recherche peut être spécifié avec from, continuant vers le début de la chaîne. Cette méthode est l'inverse de find().


String right(length: int) const 🔗

Renvoie les length derniers caractères depuis la fin de la chaîne. Si length est négatif, retire les length premiers caractères depuis le début de la chaîne.

print("Bonjour monde!".right(3))  # Prints "de!"
print("Bonjour monde!".right(-4)) # Prints "our monde!"

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

Formate la chaîne pour être longue d'au moins min_length caractères, en ajoutant character caractères à la droite de la chaîne, si nécessaire. Voir aussi lpad().


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

Divise une chaîne de caractères en utilisant une chaîne de délimitation delimiter et renvoie un tableau avec ces sous-chaînes, en partant de la fin de la chaîne. Les divisions renvoyés dans le tableau sont dans le même ordre que la chaîne de caractères originale. Si delimiter est une chaîne vide, chaque sous-chaîne sera composée d'un seul caractère.

Si allow_empty vaut false, les chaînes vides entre des délimiteurs adjacents sont exclues du tableau.

Si maxsplit est supérieur à 0, le nombre de divisions ne peut excéder maxsplit. Par défaut, la chaîne entière est divisée, ce qui est globalement identique à split().

var une_chaine = "Un,Deux,Trois,Quatre"
var un_tableau = une_chaine.rsplit(",", true, 1)

print(un_tableau.size()) # Affiche 2
print(un_tableau[0])     # Affiche "Un,Deux,Trois"
print(un_tableau[1])     # Affiche "Quatre"

String rstrip(chars: String) const 🔗

Retire un ensemble de caractères définis dans chars depuis la fin de la chaîne. Voir aussi rstrip().

Note : chars n'est pas un suffixe. Utilisez trim_suffix() pour supprimer un seul suffixe, plutôt qu'un ensemble de caractères.


PackedByteArray sha1_buffer() const 🔗

Renvoie le hachage SHA-1 de la chaîne en tant que PackedByteArray.


String sha1_text() const 🔗

Renvoie le hachage SHA-1 de la chaîne en tant qu'autre String.


PackedByteArray sha256_buffer() const 🔗

Renvoie le hash SHA-256 de la chaîne de caractères en PackedByteArray.


String sha256_text() const 🔗

Renvoie le hash SHA-256 de la chaîne de caractères en String.


float similarity(text: String) const 🔗

Renvoie l'indice de similarité (Indice de Sørensen-Dice) de cette chaîne de caractères par rapport à une autre. Un résultat de 1.0 signifie qu'elles sont identiques, alors que 0.0 signifie qu'elles sont complètement différentes.

print("ABC123".similarity("ABC123")) # Affiche 1.0
print("ABC123".similarity("XYZ456")) # Affiche 0.0
print("ABC123".similarity("123ABC")) # Affiche 0.8
print("ABC123".similarity("abc123")) # Affiche 0.4

String simplify_path() const 🔗

Si la chaîne est un chemin de fichier valide, convertit la chaîne en un chemin canonique. C'est le chemin le plus court possible, sans "./", et tous les ".." et "/" inutiles.

var chemin_simple = "./chemin/vers///./fichier".simplify_path()
print(chemin_simple) # Affiche "chemin/fichier"

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

Divise la chaîne en utilisant un délimiteur delimiter et renvoie un tableau des sous-chaînes. Si delimiter est une chaîne vide, chaque sous-chaîne sera un unique caractère. Cette méthode est le contraire de join().

Si allow_empty vaut false, les chaînes vides entre les délimiteurs adjacents sont exclues du tableau.

Si maxsplit est supérieur à 0, le nombre de divisions ne peut excéder maxsplit. Par défaut, la chaîne entière est divisée.

var un_tableau = "Un,Deux,Trois,Quatre".split(",", true, 2)

print(un_tableau.size()) # Prints 3
print(un_tableau[0]) # Affiche "One"
print(un_tableau[1]) # Affiche "Deux"
print(un_tableau[2]) # Affiche "Trois,Quatre"

Note : Si vous n'avez besoin que d'une sous-chaîne du tableau, envisagez d'utiliser get_slice() qui est plus rapide. Si vous devez diviser les chaînes avec des règles plus complexes, utilisez plutôt la classe RegEx.


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

Divise la chaîne en flottants en utilisant un délimiteur delimiter et renvoie un PackedFloat64Array.

Si allow_empty vaut false, les conversions de float vides ou invalides entre les délimiteurs adjacents sont exclues.

var a = "1,2,4.5".split_floats(",")         # a vaut [1.0, 2.0, 4.5]
var c = "1| ||4.5".split_floats("|")        # c vaut [1.0, 0.0, 0.0, 4.5]
var b = "1| ||4.5".split_floats("|", false) # b vaut [1.0, 4.5]

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

Retire tous les caractères non-imprimables du début et de la fin de la chaîne. Il s'agit d'espaces, de tabulations (\t), et de caractères de nouvelle ligne (\n \r).

Si left vaut false, ignore le début de la chaîne. De même, si right vaut false, ignore la fin de la chaîne.


String strip_escapes() const 🔗

Retire tous les caractères d'échappement de la chaîne. Il s'agit de tous les caractères de contrôle non-imprimables de la première page de la table ASCII (valeurs de 0 à 31), tels que les tabulations (\t) et les caractères de nouvelle ligne (\n, \r), mais pas les espaces.


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

Renvoie la partie de la chaîne commençant à la position from avec la longueur len. Si len vaut -1 (comme par défaut), renvoie le reste de la chaîne depuis la position donnée.


PackedByteArray to_ascii_buffer() const 🔗

Convertit la chaîne en un PackedByteArray encodé en ASCII/Latin-1. Cette méthode est légèrement plus rapide que to_utf8_buffer(), mais remplace tous les caractères non supportés par des espaces. C'est l'inverse de PackedByteArray.get_string_from_ascii().


String to_camel_case() const 🔗

Renvoie la chaîne de caractères convertie en camelCase.


float to_float() const 🔗

Convertit une chaîne représentant un nombre décimal en un float. La méthode s'arrêtera sur le premier caractère qui n'est pas un chiffre, sauf le premier . (point décimal), et lettre d'exposant e. Voir aussi is_valid_float().

var a = "12.35".to_float()  # a vaut 12.35
var b = "1.2.3".to_float()  # b vaut 1.2
var c = "12xy3".to_float()  # c vaut 12.0
var d = "1e3".to_float()    # d vaut 1000.0
var e = "Hello !".to_float() # e vaut 0.0

int to_int() const 🔗

Convertit une chaîne représentant un nombre entier en un int. La méthode supprimera tout caractère qui n'est pas un chiffre et s'arrêtera au premier . (point décimal). Voir aussi is_valid_int().

var a = "123".to_int()    # a vaut 123
var b = "x1y2z3".to_int() # b vaut 123
var c = "-1.2.3".to_int() # c vaut -1
var d = "Hello !".to_int() # d vaut 0

String to_kebab_case() const 🔗

Renvoie la chaîne convertie en kebab-case.

Note : Les nombres suivis d'une seule lettre ne sont pas séparés dans la conversion pour garder quelques mots (comme "2D") ensemble.

"Node2D".to_kebab_case()               # Renvoie "node-2d"
"2de place".to_kebab_case()            # Renvoie "2-de-place"
"Texture3DAssetFolder".to_kebab_case() # Renvoie "texture-3d-asset-folder"

String to_lower() const 🔗

Renvoie la chaîne de caractères convertie en lowercase (minuscules).


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

Converts the string to system multibyte code page encoded PackedByteArray. If conversion fails, empty array is returned.

The values permitted for encoding are system dependent. If encoding is empty string, system default encoding is used.

  • For Windows, see Code Page Identifiers .NET names.

  • For macOS and Linux/BSD, see libiconv library documentation and iconv --list for a list of supported encodings.


String to_pascal_case() const 🔗

Renvoie la chaîne de caractères convertie en PascalCase.


String to_snake_case() const 🔗

Renvoie la chaîne convertie en snake_case.

Note : Les nombres suivis d'une seule lettre ne sont pas séparés dans la conversion pour garder quelques mots (comme "2D") ensemble.

"Node2D".to_snake_case()               # Renvoie "node_2d"
"2de place".to_snake_case()            # Renvoie "2_de_place"
"Texture3DAssetFolder".to_snake_case() # Renvoie "texture_3d_asset_folder"

String to_upper() const 🔗

Renvoie la chaîne de caractères convertie en UPPERCASE (majuscules).


PackedByteArray to_utf8_buffer() const 🔗

Convertit la chaîne en un tableau PackedByteArray encodé en UTF-8. Cette méthode est légèrement plus lente que to_ascii_buffer(), mais prend en charge tous les caractères UTF-8. Pour la plupart des cas, préférez utiliser cette méthode. C'est l'inverse de PackedByteArray.get_string_from_utf8().


PackedByteArray to_utf16_buffer() const 🔗

Convertit la chaîne en un tableau PackedByteArray encodé en UTF-16. C'est l'inverse de PackedByteArray.get_string_from_utf16().


PackedByteArray to_utf32_buffer() const 🔗

Convertit la chaîne en un tableau PackedByteArray encodé en UTF-32. C'est l'inverse de PackedByteArray.get_string_from_utf32().


PackedByteArray to_wchar_buffer() const 🔗

Convertit la chaîne de caractères en un PackedByteArray encodé en caractères larges (wchar_t, UTF-16 sur Windows, UTF-32 sur les autres plates-formes). C'est l'inverse de PackedByteArray.get_string_from_wchar().


String trim_prefix(prefix: String) const 🔗

Supprime le préfixe prefix donné depuis le début de la chaîne, ou renvoie la chaîne inchangée.


String trim_suffix(suffix: String) const 🔗

Supprime le suffixe suffix donné depuis la fin de la chaîne, ou renvoie la chaîne inchangée.


int unicode_at(at: int) const 🔗

Renvoie le code du caractère à la position at.

Voir aussi String.chr(), @GDScript.char(), et @GDScript.ord().


String uri_decode() const 🔗

Décode la chaîne depuis son format encodé d'URL. Cette méthode est destinée à décoder correctement les paramètres dans une URL lors de la réception d'une requête HTTP. Voir aussi uri_encode().

var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
print(url.uri_decode()) # Affiche "$DOCS_URL/?highlight=Godot Engine:docs"

Note : Cette méthode décode + en un espace.


String uri_encode() const 🔗

Encode la chaîne en un format d'URL. Cette méthode est destinée à encoder correctement les paramètres dans une URL lors de l'envoi d'une requête HTTP. Voir aussi uri_decode().

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

print(url) # Affiche "$DOCS_URL/?highlight=Godot%20Engine%3%docs"

String uri_file_decode() const 🔗

Décode le chemin de fichier depuis son format encodé d'URL. Contrairement à uri_decode(), cette méthode laisse + tel quel.


String validate_filename() const 🔗

Renvoie une copie de la chaîne avec tous les caractères qui ne sont pas autorisés dans is_valid_filename() remplacés par des tirets du bas.


String validate_node_name() const 🔗

Renvoie une copie de la chaîne avec tous les caractères qui ne sont pas autorisés dans Node.name (. : @ / " %) remplacés par des tirets du bas.


String xml_escape(escape_quotes: bool = false) const 🔗

Renvoie une copie de la chaîne avec les caractères spéciaux échappés en utilisant la norme XML. Si escape_quotes vaut true, les caractères de guillemet simples (') et doubles (") sont également échappés.


String xml_unescape() const 🔗

Renvoie une copie de la chaîne avec des caractères échappés remplacés par leurs significations selon la norme XML.


Descriptions des opérateurs

bool operator !=(right: String) 🔗

Renvoie true si ce StringName n'est pas équivalent au String donné.


bool operator !=(right: StringName) 🔗

Renvoie true si StringName et right ne se réfèrent pas au même nom. Les comparaisons entre StringNames sont beaucoup plus rapides que les comparaisons de String habituelles.


String operator %(right: Variant) 🔗

Formate le StringName, remplaçant les placeholders par un ou plusieurs paramètres, et renvoyant un String. Pour passer plusieurs paramètres, right doit être un Array.

Pour plus d'informations, consultez le tutoriel Chaînes de format en GDScript.

Note : En C#, cet opérateur n'est pas disponible. Au lieu de cela, voir Interpolation de chaîne à l’aide de "$".


String operator +(right: String) 🔗

Ajoute la chaîne right à la fin de ce StringName, renvoyant une String. Ceci est également connu comme une concaténation de chaînes.


String operator +(right: StringName) 🔗

Ajoute la chaîne right à la fin de ce StringName, renvoyant une String. Ceci est également connu comme une concaténation de chaînes.


bool operator <(right: StringName) 🔗

Renvoie true si le pointeur du StringName de gauche arrive avant le pointeur de right. Notez que cela ne correspondra pas à leur ordre Unicode.


bool operator <=(right: StringName) 🔗

Renvoie true si le pointeur du StringName de gauche arrive avant le pointeur de right ou s'ils sont les mêmes. Notez que cela ne correspondra pas à leur ordre Unicode.


bool operator ==(right: String) 🔗

Renvoie true si ce StringName est équivalent au String donné.


bool operator ==(right: StringName) 🔗

Renvoie true si StringName et right se réfèrent au même nom. Les comparaisons entre StringNames sont beaucoup plus rapides que les comparaisons de String habituelles.


bool operator >(right: StringName) 🔗

Renvoie true si le pointeur du StringName de gauche arrive après le pointeur de right. Notez que cela ne correspondra pas à leur ordre Unicode.


bool operator >=(right: StringName) 🔗

Renvoie true si le pointeur du StringName de gauche arrive après le pointeur de right ou s'ils sont les mêmes. Notez que cela ne correspondra pas à leur ordre Unicode.