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.
Checking the stable version of the documentation...
String
Un type intégré pour les chaînes de caractères.
Description
C’est le type Variant intégré de chaînes de caractères (et celui utilisé par GDScript). Les chaînes de caractères peuvent contenir n’importe quel nombre de caractères Unicode et exposer les méthodes utiles pour manipuler et générer des chaînes. Les chaînes de caractères sont comptées par référence et utilisent une approche de copie lors de l’écriture (toute modification à une chaîne renvoie une nouvelle String), donc les passer par référence à un coût faible en ressources.
Certaines méthodes de chaîne ont des variations correspondantes. n (countn(), findn(), replacen(), etc.) sont ** insensibles à la casse** (ils ne font aucune distinction entre les lettres majuscules et minuscules). Les variations de méthode préfixées avec r (rfind(), rsplit(), etc.) sont inversées et commencent à partir de la fin de la chaîne, au lieu du début.
Pour convertir tout Variant en ou à partir d'une chaîne, voir @GlobalScope.str(), @GlobalScope.str_to_var(), et @GlobalScope.var_to_str().
Note : Dans un contexte booléen, une chaîne s’évaluera à false si elle est vide ("). Sinon, une chaîne s’é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.
Tutoriels
Constructeurs
String() |
|
String(from: StringName) |
Méthodes
Opérateurs
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) |
Descriptions des constructeurs
Construit une chaîne String vide ("").
Construit une nouvelle chaîne String comme copie d'une chaine String donnée.
Construit une nouvelle chaîne String à partir du NodePath donné.
String String(from: StringName)
Construit une nouvelle chaîne String à partir du StringName donné.
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!"]
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
GD.Print("101".BinToInt()); // Affiche 5
GD.Print("0b101".BinToInt()); // Affiche 5
GD.Print("-0b10".BinToInt()); // Affiche -2
Renvoie une copie de la chaîne de caractères avec les caractères spéciaux échappés selon le standard du langage C.
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.
Returns a copy of the string with changed appearance. Replaces underscores (_) and hyphens (-) with spaces, adds spaces before uppercase letters in the middle of a word, converts all letters to lowercase, then converts the first one and each one following a space to uppercase.
"move_local_x".capitalize() # Returns "Move Local X"
"sceneFile_path".capitalize() # Returns "Scene File Path"
"2D, FPS, PNG".capitalize() # Returns "2d, Fps, Png"
"example-name".capitalize() # Returns "Example Name"
"move_local_x".Capitalize(); // Returns "Move Local X"
"sceneFile_path".Capitalize(); // Returns "Scene File Path"
"2D, FPS, PNG".Capitalize(); // Returns "2d, Fps, Png"
"example-name".Capitalize(); // Returns "Example Name"
int casecmp_to(to: String) const 🔗
Effectue une comparaison sensible à la casse avec une autre chaîne. Renvoie -1 si elle est inférieure, 1 si elle est plus supérieure, ou 0 si elles sont égales. "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.
Si la comparaison des caractères atteint la fin d'une chaîne, mais que l'autre chaîne contient plus de caractères, elle utilisera alors la longueur comme facteur déterminant : 1 sera renvoyé 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 booléen bool d'une comparaison de chaînes, utilisez plutôt l'opérateur ==. Voir aussi nocasecmp_to(), filecasecmp_to(), et naturalcasecmp_to().
String chr(code: int) static 🔗
Renvoie un seul caractère Unicode depuis l'entier code. Vous pouvez utiliser unicodelookup.com ou unicode.org comme points de référence.
print(String.chr(65)) # Affiche "A"
print(String.chr(129302) # Affiche "🤖" (emoji tête de robot)
Voir aussi unicode_at(), @GDScript.char(), et @GDScript.ord().
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
GD.Print("Nœud".contains("No")); // Affiche True
GD.Print("équipe".contains("je")); // 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.
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
GD.Print("équipe".Find("je")) ; // Affiche -1
GD.Print("Patate".Find("t")) ; // Affiche 2
GD.Print("Patate".Find("t", 3)) ; // Affiche 4
GD.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 "$".
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"
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 ""
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 🔗
Splits the string using a delimiter and returns the substring at index slice. Returns the original string if delimiter does not occur in the string. Returns an empty string if the slice does not exist.
This is faster than split(), if you only need one or two substrings.
print("i/am/example/hi".get_slice("/", 2)) # Prints "example"
int get_slice_count(delimiter: String) const 🔗
Returns the total number of slices when the string is split with the given delimiter (see split()).
Use get_slice() to extract a specific slice.
print("i/am/example/string".get_slice_count("/")) # Prints '4'.
print("i am example string".get_slice_count("/")) # Prints '1'.
String get_slicec(delimiter: int, slice: int) const 🔗
Splits the string using a Unicode character with code delimiter and returns the substring at index slice. Returns an empty string if the slice does not exist.
This is faster than split(), if you only need one or two substrings.
This is a Unicode version of get_slice().
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())
var texte = "hello world";
var encode = texte.ToUtf8Buffer().HexEncode(); // outputs "626f6e6a6f7572206c65206d6f6e6465"
GD.Print(encode.HexDecode().GetStringFromUtf8());
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
GD.Print("0xff".HexToInt()); // Affiche 255
GD.Print("ab".HexToInt()); // Affiche 171
String humanize_size(size: int) static 🔗
Convertit size qui représente un certain nombre d'octets en une forme facilement lisible.
Le résultat est au format de préfixe CEI, qui peut se terminer soit "B", "KiB", "MiB", "GiB", "TiB", "PiB", ou "EiB".
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.
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 (: / \ ? * " | % < >).
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
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[] fruits = ["Pomme", "Orange", "Poire", "Kiwi"];
// En C#, cette méthode est statique.
GD.Print(string.Join(", ", fruits)); // Affiche "Pomme, Orange, Poire, Kiwi"
GD.Print(string.Join("---", fruits)); // Affiche "Pomme---Orange---Poire---Kiwi"
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"
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.
Renvoie le hachage MD5 de la chaîne en tant qu'autre String.
int naturalcasecmp_to(to: String) const 🔗
Effectue une comparaison sensible à la casse dans l'ordre naturel avec une autre chaîne. Renvoie -1 si elle est inférieure, 1 si elle est supérieure, ou 0 si elles sont égales. "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.
Lorsqu'elle est utilisée pour le tri, la comparaison dans l'ordre naturel ordonne des séquences de nombres par la valeur combinée de chaque chiffre comme s'y attend souvent, au lieu de la valeur du chiffre seul. Une séquence triée de chaînes de numéros sera ["1, "2", "3", ...], et pas ["1", "10", "2", "3", ...].
Si la comparaison des caractères atteint la fin d'une chaîne, mais que l'autre chaîne contient plus de caractères, elle utilisera alors la longueur comme facteur déterminant : 1 sera renvoyé 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 booléen bool d'une comparaison de chaînes, utilisez plutôt l'opérateur ==. Voir aussi naturalnocasecmp_to(), filecasecmp_to(), et nocasecmp_to().
int naturalnocasecmp_to(to: String) const 🔗
Effectue une comparaison insensible à la casse dans l'ordre naturel avec une autre chaîne. Renvoie -1 si elle est inférieure, 1 si elle est supérieure, ou 0 si elles sont égales. "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. En interne, les caractères minuscules sont convertis en majuscules pour la comparaison.
Lorsqu'elle est utilisée pour le tri, la comparaison dans l'ordre naturel ordonne des séquences de nombres par la valeur combinée de chaque chiffre comme s'y attend souvent, au lieu de la valeur du chiffre seul. Une séquence triée de chaînes de numéros sera ["1, "2", "3", ...], et pas ["1", "10", "2", "3", ...].
Si la comparaison des caractères atteint la fin d'une chaîne, mais que l'autre chaîne contient plus de caractères, elle utilisera alors la longueur comme facteur déterminant : 1 sera renvoyé 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 booléen bool d'une comparaison de chaînes, utilisez plutôt l'opérateur ==. Voir aussi naturalcasecmp_to(), filenocasecmp_to(), et casecmp_to().
int nocasecmp_to(to: String) const 🔗
Effectue une comparaison insensible à la casse avec une autre chaîne. Renvoie -1 si elle est inférieure, 1 si elle est supérieure, ou 0 si elles sont égales. "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. En interne, les caractères minuscules sont convertis en majuscules pour la comparaison.
Si la comparaison des caractères atteint la fin d'une chaîne, mais que l'autre chaîne contient plus de caractères, elle utilisera alors la longueur comme facteur déterminant : 1 sera renvoyé 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 booléen bool d'une comparaison de chaînes, utilisez plutôt l'opérateur ==. Voir aussi casecmp_to(), filenocasecmp_to(), et naturalnocasecmp_to().
String num(number: float, decimals: int = -1) static 🔗
Convertit un float en une représentation en chaîne d'un nombre décimal, avec le nombre de décimales spécifié dans decimals.
Si decimals vaut -1 comme par défaut, la représentation en chaîne peut avoir seulement jusqu'à 14 chiffres significatifs, avec les chiffres avant la virgule ayant priorité sur les chiffres après.
Les zéros de fin ne sont pas inclus dans la chaîne. Le dernier chiffre est arrondi, pas tronqué.
String.num(3.141593) # Renvoie "3.141593"
String.num(3.141593, 3) # Renvoie "3.142"
String.num(3.14159300) # Renvoie "3.141593"
# Ici, le dernier chiffre sera arrondi,
# ce qui réduit le nombre total de chiffres, puisque les zéros de fin sont supprimés :
String.num(42.129999, 5) # Renvoie "42.13"
# Si `decimals` n est pas spécifié, le nombre maximal de chiffres significatifs est de 14 :
String.num(-0.0000012345432123454321) # Renvoie "-0.00000123454321"
String.num(-10000.0000012345432123454321) # Renvoie "-10000.0000012345"
String num_int64(number: int, base: int = 10, capitalize_hex: bool = false) static 🔗
Convertit le nombre number donné en une représentation en chaîne, avec la base donnée.
Par défaut, base est définie en décimal (10). D'autres bases communes en programmation sont par exemple le binaire (2), l'octal (8), et l'hexadécimal (16).
Si capitalize_hex vaut true, les chiffres supérieurs à 9 sont représentés en majuscules.
String num_scientific(number: float) static 🔗
Convertit le nombre number donné en une représentation en chaîne, en notation scientifique.
var n = -5.2e8
print(n) # Affiche -520000000
print(String.num_scientific(n)) # Affiche -5.2e+08
// Cette méthode n'est pas implémentée en C#.
// Utilisez `string.ToString()` avec "e" pour obtenir un résultat similaire.
var n = -5.2e8f;
GD.Print(n); // Affiche -520000000
GD.Print(n.ToString("e1")); // Affiche -5.2e+008
Note : En C#, cette méthode n'est pas implémentée. Pour obtenir des résultats similaires, voir Chaînes de format numérique standard du C#.
String num_uint64(number: int, base: int = 10, capitalize_hex: bool = false) static 🔗
Convertit le int non signé donné en une représentation en chaîne, avec la base donnée.
Par défaut, base est définie en décimal (10). D'autres bases communes en programmation sont par exemple le binaire (2), l'octal (8), et l'hexadécimal (16).
Si capitalize_hex vaut true, les chiffres supérieurs à 9 sont représentés en majuscules.
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.
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"
// En C#, il n'y a pas de méthode String.RSplit().
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.
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.
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"
// `Split()`en C# ne supporte pas le paramètre `maxsplit`.
var unTableau = "Un,Deux,Trois".Split(",");
GD.Print(unTableau[0]); // Affiche "Un"
GD.Print(unTableau[1]); // Affiche "Deux"
GD.Print(unTableau[2]); // Affiche "Trois"
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.
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
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"
"Node2D".ToKebabCase(); // Renvoie "node-2d"
"2de place".ToKebabCase(); // Renvoie "2-de-place"
"Texture3DAssetFolder".ToKebabCase(); // Renvoie "texture-3d-asset-folder"
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
libiconvlibrary documentation andiconv --listfor 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"
"Node2D".ToSnakeCase(); // Renvoie "node_2d"
"2de place".ToSnakeCase(); // Renvoie "2_de_place"
"Texture3DAssetFolder".ToSnakeCase(); // Renvoie "texture_3d_asset_folder"
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 chr(), @GDScript.char(), et @GDScript.ord().
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"
var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
GD.Print(url.URIDecode()) // Affiche "$DOCS_URL/?highlight=Godot Engine:docs"
Note : Cette méthode décode + en un espace.
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"
var prefixe = "$DOCS_URL/?highlight=";
var url = prefixe + "Godot Engine:docs".URIEncode();
GD.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.
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 les deux chaînes ne contiennent pas la même séquence de caractères.
bool operator !=(right: StringName) 🔗
Renvoie true si ce String n'est pas équivalent au StringName donné.
String operator %(right: Variant) 🔗
Formate le String, en remplaçant les placeholders par un ou plusieurs paramètres. Pour passer plusieurs paramètres, right doit être un Array.
print("J'ai attrapé %d poissons !" % 2) # Affiche "J'ai attrapé 2 poissons !"
var my_message = "Voyage vers %s, à %2.2f km/h."
var location = "Vallée lointaine"
var speed = 40.3485
print(my_message % [location, speed]) # Affiche "Voyage vers Vallée lointaine, à 40.35 km/h."
Pour plus d'informations, consultez le tutoriel Chaînes de format en GDScript.
Note : En C#, cet opérateur n'est pas disponible. À la place, voir Comment interpoler des chaînes avec "$".
String operator +(right: String) 🔗
Ajoute right à la fin de cet String, également appelé concaténation de chaînes.
String operator +(right: StringName) 🔗
Ajoute right à la fin de ce String, en renvoyant un String. Ceci est également appelé une concaténation de chaînes.
bool operator <(right: String) 🔗
Renvoie true si la String de gauche arrive avant right dans l'ordre Unicode, qui correspond à peu près à l'ordre alphabétique. Utile pour le tri.
bool operator <=(right: String) 🔗
Renvoie true si la String de gauche arrive avant right dans l'ordre Unicode, qui correspond à peu près à l'ordre alphabétique, ou si les deux sont égales.
bool operator ==(right: String) 🔗
Renvoie true si les deux chaînes contiennent la même séquence de caractères.
bool operator ==(right: StringName) 🔗
Renvoie true si cette String est équivalente au StringName donné.
bool operator >(right: String) 🔗
Renvoie true si la String de gauche arrive après right dans l'ordre Unicode, qui correspond à peu près à l'ordre alphabétique. Utile pour le tri.
bool operator >=(right: String) 🔗
Renvoie true si la String de gauche arrive après right dans l'ordre Unicode, qui correspond à peu près à l'ordre alphabétique, ou si les deux sont égales.
String operator [](index: int) 🔗
Renvoie une nouvelle String qui ne contient que le caractère à index. Les indices commencent de 0. Si index est supérieur ou égal à 0, le caractère est récupéré à partir du début de la chaîne. Si index est une valeur négative, il est récupéré à partir de la fin. L'accès à une chaîne hors de ses limites causera une erreur d'exécution, mettant en pause l'exécution du projet s'il est exécuté depuis l'éditeur.