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 tipo integrato per le stringhe.
Descrizione
Questo è il tipo di Variant stringa integrato (e quello utilizzato da GDScript). Le stringhe possono contenere un numero qualsiasi di caratteri Unicode, ed espongono metodi utili per manipolare e generare stringhe. Le stringhe sono conteggiate per riferimento e utilizzano un approccio copy-on-write (ogni modifica a una stringa restituisce una nuova String), quindi passarle in giro è economico in termini di risorse.
Alcuni metodi di stringa hanno variazioni corrispondenti. Le variazioni con suffisso n (countn(), findn(), replacen(), ecc.) non fanno distinzione tra lettere maiuscole e minuscole. Le variazioni dei metodi con prefisso r (rfind(), rsplit(), ecc.) sono invertite e iniziano dalla fine della stringa, anziché dall'inizio.
Per convertire qualsiasi Variant in o da una stringa, vedi @GlobalScope.str(), @GlobalScope.str_to_var() e @GlobalScope.var_to_str().
Nota: In un contesto booleano, una stringa sarà valutata come false se è vuota (""). Altrimenti, una stringa sarà sempre valutata come true.
Nota
Ci sono differenze sostanziali quando si usa questa API con C#. Vedi Differenze dell'API C# rispetto a GDScript per maggiori informazioni.
Tutorial
Costruttori
String() |
|
String(from: StringName) |
Metodi
Operatori
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) |
Descrizioni dei costruttori
Costruisce un String vuoto ("").
Costruisce un String come copia del String specificato.
Costruisce una nuova String dal NodePath specificato.
String String(from: StringName)
Costruisce una nuova String dal StringName specificato.
Descrizioni dei metodi
bool begins_with(text: String) const 🔗
Restituisce true se la stringa inizia con il testo text. Vedi anche ends_with().
PackedStringArray bigrams() const 🔗
Restituisce un array contenente i bigrammi (coppie di caratteri consecutivi) di questa stringa.
print("Vai su!".bigrams()) # Prints ["Va", "ai", "i ", " s", "su", "u!"]
Converte la stringa che rappresenta un numero binario in un int. La stringa può essere facoltativamente preceduta da "0b" e da un prefisso aggiuntivo - per i numeri negativi.
print("101".bin_to_int()) # Stampa 5
print("0b101".bin_to_int()) # Stampa 5
print("-0b10".bin_to_int()) # Stampa -2
GD.Print("101".BinToInt()); // Stampa 5
GD.Print("0b101".BinToInt()); // Stampa 5
GD.Print("-0b10".BinToInt()); // Stampa -2
Restituisce una copia della stringa con i caratteri speciali sottoposti a escape attraverso lo standard del linguaggio C.
Restituisce una copia della stringa con i caratteri di escape sostituiti dai loro significati. Le sequenze di escape supportate sono \', \", \\, \a, \b, \f, \n, \r, \t, \v.
Nota: A differenza del parser di GDScript, questo metodo non supporta la sequenza di escape \uXXXX.
Restituisce una copia della stringa cambiandogli l'aspetto: sostituisce i trattini bassi (_) con spazi, aggiunge spazi prima delle lettere maiuscole nel mezzo di una parola, converte tutte le lettere in minuscole, e infine converte la prima e ciascuna successiva a uno spazio in maiuscolo.
"move_local_x".capitalize() # Restituisce "Move Local X"
"sceneFile_path".capitalize() # Restituisce "Scene File Path"
"2D, FPS, PNG".capitalize() # Restituisce "2d, Fps, Png"
"example-name".capitalize() # Restituisce "Example Name"
"move_local_x".Capitalize(); // Restituisce "Move Local X"
"sceneFile_path".Capitalize(); // Restituisce "Scene File Path"
"2D, FPS, PNG".Capitalize(); // Restituisce "2d, Fps, Png"
"example-name".Capitalize(); // Restituisce "Example Name"
int casecmp_to(to: String) const 🔗
Esegue un confronto con distinzione tra maiuscole e minuscole con un'altra stringa. Restituisce -1 se minore di, 1 se maggiore di, o 0 se uguale. "Minore di" e "maggiore di" sono determinati dai codici Unicode di ogni stringa, che corrispondono approssimativamente all'ordine alfabetico.
Se il confronto tra caratteri raggiunge la fine di una stringa, ma l'altra stringa contiene più caratteri, utilizzerà la lunghezza come fattore decisivo: sarà restituito 1 se questa stringa è più lunga della stringa to, oppure -1 se è più corta. Si noti che la lunghezza delle stringhe vuote è sempre 0.
Per ottenere un risultato bool da un confronto di stringhe, utilizzare invece l'operatore ==. Vedi anche nocasecmp_to(), filecasecmp_to() e naturalcasecmp_to().
String chr(code: int) static 🔗
Restituisce un singolo carattere Unicode dall'intero code. Puoi usare unicodelookup.com o unicode.org come punti di riferimento.
print(String.chr(65)) # Stampa "A"
print(String.chr(129302)) # Stampa "🤖" (emoji faccia di robot)
Vedi anche unicode_at(), @GDScript.char() e @GDScript.ord().
bool contains(what: String) const 🔗
Restituisce true se la stringa contiene what. In GDScript, questo corrisponde all'operatore in.
print("Node".contains("de")) # Stampa true
print("team".contains("I")) # Stampa false
print("I" in "team") # Stampa false
GD.Print("Node".Contains("de")); // Stampa True
GD.Print("team".Contains("I")); // Stampa False
Se hai bisogno di sapere dove si trova what all'interno della stringa, usa find(). Vedi anche containsn().
bool containsn(what: String) const 🔗
Restituisce true se la stringa contiene what, ignorando le maiuscole e le minuscole.
Se hai bisogno di sapere dove si trova what all'interno della stringa, usa findn(). Vedi anche contains().
int count(what: String, from: int = 0, to: int = 0) const 🔗
Restituisce il numero di occorrenze della sottostringa what tra le posizioni from e to. Se to è 0, la ricerca continua fino alla fine della stringa.
int countn(what: String, from: int = 0, to: int = 0) const 🔗
Restituisce il numero di occorrenze della sottostringa what tra le posizioni from e to, ignorando le maiuscole e le minuscole. Se to è 0, la ricerca continua fino alla fine della stringa.
Restituisce una copia della stringa con l'indentazione (le tabulazioni iniziali e gli spazi) rimossa. Vedi anche indent() per aggiungere un'indentazione.
bool ends_with(text: String) const 🔗
Restituisce true se la stringa finisce con il testo text. Vedi anche begins_with().
String erase(position: int, chars: int = 1) const 🔗
Restituisce una stringa con chars caratteri cancellati a partire dalla posizione position. Se chars supera la lunghezza della stringa con la posizione position, verranno cancellati meno caratteri dalla stringa restituita. Restituisce una stringa vuota se position o chars è negativo. Restituisce la stringa originale non modificata se chars è 0.
int filecasecmp_to(to: String) const 🔗
Come naturalcasecmp_to() ma dà priorità alle stringhe che iniziano con punti (.) e caratteri di sottolineatura (_) prima di qualsiasi altro carattere. Utile quando si ordinano le cartelle o i nomi di file.
Per ottenere un risultato bool da un confronto di stringhe, usa invece l'operatore ==. Vedi anche filenocasecmp_to(), naturalcasecmp_to() e casecmp_to().
int filenocasecmp_to(to: String) const 🔗
Come naturalnocasecmp_to() ma dà priorità alle stringhe che iniziano con punti (.) e caratteri di sottolineatura (_) prima di qualsiasi altro carattere. Utile quando si ordinano le cartelle o i nomi di file.
Per ottenere un risultato bool da un confronto di stringhe, usa invece l'operatore ==. Vedi anche filecasecmp_to(), naturalnocasecmp_to() e nocasecmp_to().
int find(what: String, from: int = 0) const 🔗
Restituisce l'indice della prima occorrenza di what in questa stringa, o -1 se non ce ne sono. L'inizio della ricerca può essere specificato con from, continuando fino alla fine della stringa.
print("Team".find("I")) # Stampa -1
print("Potato".find("t")) # Stampa 2
print("Potato".find("t", 3)) # Stampa 4
print("Potato".find("t", 5)) # Stampa -1
GD.Print("Team".Find("I")); // Stampa -1
GD.Print("Potato".Find("t")); // Stampa 2
GD.Print("Potato".Find("t", 3)); // Stampa 4
GD.Print("Patata".Find("t", 5)); // Stampa -1
Nota: Se vuoi solo sapere se la stringa contiene what, usa contains(). In GDScript, puoi anche usare l'operatore in.
Nota: Un valore negativo di from è convertito in un indice iniziale contando all'indietro dall'ultimo indice possibile con abbastanza spazio per trovare what.
int findn(what: String, from: int = 0) const 🔗
Restituisce l'indice della prima occorrenza di what in questa stringa o -1 se non ce ne sono, senza distinzione tra maiuscole e minuscole. L'indice di ricerca di partenza può essere specificato con from, continuando fino alla fine della stringa.
String format(values: Variant, placeholder: String = "{_}") const 🔗
Formatta la stringa sostituendo tutte le occorrenze di placeholder con gli elementi di values.
values può essere un Dictionary o un Array. Qualsiasi trattino basso in placeholder verrà sostituito in anticipo con le chiavi corrispondenti. Gli elementi di array utilizzano il loro indice come chiavi.
# Stampa "Aspettando Godot è un'opera di Samuel Beckett, e il Godot Engine prende il nome da essa."
var use_array_values = "Aspettando {0} è un'opera di {1}, e {0} Engine prende il nome da essa."
print(use_array_values.format(["Godot", "Samuel Beckett"]))
# Stampa "Utente 42 è Godot."
print("Utente {id} è {nome}.".format({"id": 42, "nome": "Godot"}))
Vengono eseguite alcune operazioni aggiuntive quando values è un Array. Se placeholder non contiene un trattino basso, gli elementi dell'array values verranno utilizzati per sostituire un'occorrenza del segnaposto in ordine; se un elemento di values è un altro array di 2 elementi, verrà interpretato come una coppia chiave-valore.
# Stampa "Utente 42 is Godot."
print("Utente {} è {}.".format([42, "Godot"], "{}"))
print("Utente {id} è {nome}.".format([["id", 42], ["nome", "Godot"]]))
Quando si passa un Object, i nomi delle proprietà da Object.get_property_list() vengono utilizzati come chiavi.
# Stampa "Visibile true, posizione (0, 0)"
var nodo = Node2D.new()
print("Visibile {visible}, posizione {position}".format(nodo))
Consulta anche il tutorial Stringa di formato GDScript.
Nota: Ogni sostituzione viene eseguita in sequenza per ogni elemento di values, non tutto in una volta. Ciò significa che se un elemento viene inserito e contiene un altro segnaposto, potrebbe essere modificato dalla sostituzione successiva. Sebbene ciò possa essere molto utile, spesso causa risultati inaspettati. Se non necessario, assicurati che gli elementi di values non contengano alcun segnaposto.
print("{0} {1}".format(["{1}", "x"])) # Stampa "x x"
print("{0} {1}".format(["x", "{0}"])) # Stampa "x {0}"
print("{foo} {bar}".format({"a": "{b}", "b": "c"})) # Stampa "c c"
print("{foo} {bar}".format({"b": "c", "a": "{b}"})) # Stampa "{b} c"
Nota: in C#, si consiglia di interpolare le stringhe con "$".
Se la stringa è un percorso di file valido, restituisce il nome della cartella di base.
var dir_path = "/path/to/file.txt".get_base_dir() # dir_path è "/path/to"
Se la stringa è un percorso di file valido, restituisce il percorso completo del file, senza l'estensione.
var base = "/path/to/file.txt".get_basename() # base is "/path/to/file"
String get_extension() const 🔗
Se la stringa è un nome o un percorso di file valido, restituisce l'estensione del file senza il punto iniziale (.). Altrimenti, restituisce una stringa vuota.
var a = "/path/to/file.txt".get_extension() # a è "txt"
var b = "cool.txt".get_extension() # b è "txt"
var c = "cool.font.tres".get_extension() # c è "tres"
var d = ".pack1".get_extension() # d è "pack1"
var e = "file.txt.".get_extension() # e è ""
var f = "file.txt..".get_extension() # f è ""
var g = "txt".get_extension() # g è ""
var h = "".get_extension() # h è ""
Se la stringa è un percorso di file valido, restituisce il nome del file, inclusa l'estensione.
var file = "/path/to/icon.png".get_file() # file è "icon.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 🔗
Divide la stringa tramite un carattere Unicode con codice delimiter e restituisce la sottostringa all'indice slice. Restituisce una stringa vuota se la sezione all'indice slice non esiste.
Questo è più veloce di split(), se c'è solo bisogno di una o due sottostringhe.
Questa è la versione Unicode di get_slice().
Restituisce il valore di hash a 32 bit che rappresenta il contenuto della stringa.
Nota: Le stringhe con valori uguali di hash non sono garantite che siano identiche, a causa delle collisioni di hash. Al contrario, le stringhe con valori diversi di hash sono sicuramente diverse.
PackedByteArray hex_decode() const 🔗
Decodifica una stringa esadecimale come PackedByteArray.
var text = "hello world"
var encoded = text.to_utf8_buffer().hex_encode() # produce "68656c6c6f20776f726c64"
print(encoded.hex_decode().get_string_from_utf8())
var text = "hello world";
var encoded = text.ToUtf8Buffer().HexEncode(); // produce "68656c6c6f20776f726c64"
GD.Print(encoded.HexDecode().GetStringFromUtf8());
Converte la stringa che rappresenta un numero esadecimale in un int. La stringa può essere facoltativamente preceduta dal prefisso "0x" e da un prefisso aggiuntivo - per i numeri negativi.
print("0xff".hex_to_int()) # Stampa 255
print("ab".hex_to_int()) # Stampa 171
GD.Print("0xff".HexToInt()); // Stampa 255
GD.Print("ab".HexToInt()); // Stampa 171
String humanize_size(size: int) static 🔗
Converte size che rappresenta un numero di byte in un formato leggibile in chiaro.
Il risultato è in formato per prefissi binari, che può terminare in "B", "KiB", "MiB", "GiB", "TiB", "PiB" o "EiB".
String indent(prefix: String) const 🔗
Rientra ogni riga della stringa con il prefisso prefix specificato. Le righe vuote non sono rientrate. Vedi anche dedent() per rimuovere l'indentazione.
Ad esempio, la stringa può essere rientrata con due tabulazioni usando "\t\t", o quattro spazi usando " ".
String insert(position: int, what: String) const 🔗
Inserisce what nella posizione position nella stringa.
bool is_absolute_path() const 🔗
Restituisce true se la stringa è un percorso verso un file o una cartella e il suo punto di partenza è definito esplicitamente. Questo metodo è l'opposto di is_relative_path().
Ciò include tutti i percorsi che iniziano con "res://", "user://", "C:\", "/", ecc.
Restituisce true se la lunghezza della stringa è 0 (""). Vedi anche length().
bool is_relative_path() const 🔗
Restituisce true se la stringa è un percorso e il suo punto di partenza dipende dal contesto. Il percorso potrebbe iniziare dalla cartella attuale o dal Node attuale (se la stringa è derivata da un NodePath) e può talvolta essere preceduto da "./". Questo metodo è l'opposto di is_absolute_path().
bool is_subsequence_of(text: String) const 🔗
Restituisce true se è possibile trovare tutti i caratteri di questa stringa in text nel loro ordine originale. Questo non è lo stesso di contains().
var text = "Wow, incredible!"
print("inedible".is_subsequence_of(text)) # Stampa true
print("Word!".is_subsequence_of(text)) # Stampa true
print("Window".is_subsequence_of(text)) # Stampa false
print("".is_subsequence_of(text)) # Stampa true
bool is_subsequence_ofn(text: String) const 🔗
Restituisce true se è possibile trovare tutti i caratteri di questa stringa in text nel loro ordine originale, ignorando la distinzione tra le maiuscole e le minuscole. Questo non è lo stesso di containsn().
bool is_valid_ascii_identifier() const 🔗
Restituisce true se questa stringa è un identificatore ASCII valido. Un identificatore ASCII valido può contenere solo lettere, cifre e trattini bassi (_) e il primo carattere non può essere una cifra.
print("node_2d".is_valid_ascii_identifier()) # Stampa true
print("TYPE_FLOAT".is_valid_ascii_identifier()) # Stampa true
print("1st_method".is_valid_ascii_identifier()) # Stampa false
print("MyMethod#2".is_valid_ascii_identifier()) # Stampa false
Vedi anche is_valid_unicode_identifier().
bool is_valid_filename() const 🔗
Restituisce true se questa stringa è un nome di file valido. Un nome di file valido non può essere vuoto, iniziare o finire con caratteri di spazio, o contenere caratteri non consentiti (: / \ ? * " | % < >).
Restituisce true se questa stringa rappresenta un numero in virgola mobile valido. Un float valido può contenere solo cifre, un punto decimale (.) e la lettera esponente (e). Può anche essere preceduto da un segno positivo (+) o negativo (-). Qualsiasi intero valido è anche un float valido (vedi is_valid_int()). Vedi anche to_float().
print("1.7".is_valid_float()) # Stampa true
print("24".is_valid_float()) # Stampa true
print("7e3".is_valid_float()) # Stampa true
print("Hello".is_valid_float()) # Stampa false
bool is_valid_hex_number(with_prefix: bool = false) const 🔗
Restituisce true se questa stringa è un numero esadecimale valido. Un numero esadecimale valido contiene solo cifre o lettere da A a F (sia maiuscole sia minuscole) e può essere preceduto da un segno positivo (+) o negativo (-).
Se with_prefix è true, il numero esadecimale deve essere preceduto da "0x" per essere considerato valido.
print("A08E".is_valid_hex_number()) # Stampa true
print("-AbCdEf".is_valid_hex_number()) # Stampa true
print("2.5".is_valid_hex_number()) # Stampa false
print("0xDEADC0DE".is_valid_hex_number(true)) # Stampa true
bool is_valid_html_color() const 🔗
Restituisce true se questa stringa è un colore valido in notazione HTML esadecimale. La stringa deve essere un valore esadecimale (vedi is_valid_hex_number()) di 3, 4, 6 o 8 cifre e può essere preceduta da un cancelletto (#). Altre notazioni HTML per i colori, come nomi o hsl(), non sono considerate valide. Vedi anche Color.html().
bool is_valid_identifier() const 🔗
Deprecato: Use is_valid_ascii_identifier() instead.
Restituisce true se questa stringa è un identificatore valido. Un identificatore valido può contenere solo lettere, cifre e trattini bassi (_) e il primo carattere non può essere una cifra.
print("node_2d".is_valid_identifier()) # Prints true
print("TYPE_FLOAT".is_valid_identifier()) # Prints true
print("1st_method".is_valid_identifier()) # Prints false
print("MyMethod#2".is_valid_identifier()) # Prints false
Restituisce true se questa stringa rappresenta un numero intero valido. Un numero intero valido contiene solo cifre e può essere preceduto da un segno positivo (+) o negativo (-). Vedi anche to_int().
print("7".is_valid_int()) # Stampa true
print("1.65".is_valid_int()) # Stampa false
print("Hi".is_valid_int()) # Stampa false
print("+3".is_valid_int()) # Stampa true
print("-12".is_valid_int()) # Stampa true
bool is_valid_ip_address() const 🔗
Restituisce true se questa stringa rappresenta un indirizzo IPv4 o IPv6 ben formattato. Questo metodo considera validi gli indirizzi IP riservati come "0.0.0.0" e "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff".
bool is_valid_unicode_identifier() const 🔗
Restituisce true se questa stringa è un identificatore Unicode valido.
Un identificatore Unicode valido deve iniziare con un carattere Unicode di classe XID_Start o "_" e può contenere caratteri Unicode di classe XID_Continue nelle altre posizioni.
print("node_2d".is_valid_unicode_identifier()) # Stampa true
print("1st_method".is_valid_unicode_identifier()) # Stampa false
print("MyMethod#2".is_valid_unicode_identifier()) # Stampa false
print("állóképesség".is_valid_unicode_identifier()) # Stampa true
print("выносливость".is_valid_unicode_identifier()) # Stampa true
print("体力".is_valid_unicode_identifier()) # Stampa true
Vedi anche is_valid_ascii_identifier().
Nota: Questo metodo verifica gli identificatori allo stesso modo di GDScript. Vedi TextServer.is_valid_identifier() per verifiche più avanzate.
String join(parts: PackedStringArray) const 🔗
Restituisce la concatenazione degli elementi di parts, con ogni elemento separato dalla stringa che chiama questo metodo. Questo metodo è l'opposto di split().
var frutta = ["Mela", "Arancia", "Pera", "Kiwi"]
print(", ".join(frutta)) # Stampa "Mela, Arancia, Pera, Kiwi"
print("---".join(frutta)) # Stampa "Mela---Arancia---Pera---Kiwi"
string[] frutta = ["Mela", "Orange", "Pear", "Kiwi"];
// In C#, questo metodo è statico.
GD.Print(string.Join(", ", frutta)); // Stampa "Mela, Arancia, Pera, Kiwi"
GD.Print(string.Join("---", frutta)); // Stampa "Mela---Arancia---Pera---Kiwi"
Restituisce una copia della stringa con caratteri speciali sottoposti a escape attraverso lo standard JSON. Poiché corrisponde strettamente allo standard C, è possibile utilizzare c_unescape() per annullare l'escape della stringa, se necessario.
String left(length: int) const 🔗
Restituisce i primi length caratteri dall'inizio della stringa. Se length è negativo, rimuove gli ultimi length caratteri dalla fine della stringa.
print("Hello World!".left(3)) # Stampa "Hel"
print("Hello World!".left(-4)) # Stampa "Hello Wo"
Restituisce il numero di caratteri nella stringa. Le stringhe vuote ("") restituiscono sempre 0. Vedi anche is_empty().
String lpad(min_length: int, character: String = " ") const 🔗
Formatta la stringa in modo che sia lunga almeno min_length caratteri, aggiungendo più caratteri (character) a sinistra della stringa, se necessario. Vedi anche rpad().
String lstrip(chars: String) const 🔗
Rimuove un insieme di caratteri definiti in chars dall'inizio della stringa. Vedi anche rstrip().
Nota: chars non è un prefisso. Usa trim_prefix() per rimuovere un singolo prefisso, invece di insieme di caratteri.
bool match(expr: String) const 🔗
Esegue una corrispondenza di espressione semplice (chiamata anche "glob" o "globbing"), dove * corrisponde a zero o più caratteri arbitrari e ? corrisponde a qualsiasi singolo carattere tranne un punto (.). Una stringa vuota o un'espressione vuota viene sempre valutata come false.
bool matchn(expr: String) const 🔗
Esegue una corrispondenza di espressione semplice (chiamata anche "glob" o "globbing") senza distinzione tra le maiuscole e le minuscole, dove * corrisponde a zero o più caratteri arbitrari e ? corrisponde a qualsiasi singolo carattere tranne un punto (.). Una stringa vuota o un'espressione vuota viene sempre valutata come false.
PackedByteArray md5_buffer() const 🔗
Restituisce l'hash MD5 della stringa sotto forma di PackedByteArray.
Restituisce l'hash MD5 della stringa sotto forma di un altra String.
int naturalcasecmp_to(to: String) const 🔗
Esegue un confronto con distinzione tra maiuscole e minuscole e in ordine naturale con un'altra stringa. Restituisce -1 se minore di, 1 se maggiore di, o 0 se uguale. "Minore di" e "maggiore di" sono determinati dai punti di codice Unicode di ogni stringa, che corrispondono approssimativamente all'ordine alfabetico.
Quando viene utilizzato per l'ordinamento, il confronto con l'ordine naturale ordina sequenze di numeri in base al valore combinato di ciascuna cifra, come spesso previsto, anziché al valore della singola cifra. Una sequenza ordinata di stringhe numerate sarà ["1", "2", "3", ...], non ["1", "10", "2", "3", ...].
Se il confronto tra caratteri raggiunge la fine di una stringa, ma l'altra stringa contiene più caratteri, utilizzerà la lunghezza come fattore decisivo: sarà restituito 1 se questa stringa è più lunga della stringa to, oppure -1 se è più corta. Si noti che la lunghezza delle stringhe vuote è sempre 0.
Per ottenere un risultato bool da un confronto di stringhe, utilizzare invece l'operatore ==. Vedi anche naturalnocasecmp_to(), filecasecmp_to() e nocasecmp_to().
int naturalnocasecmp_to(to: String) const 🔗
Esegue un confronto senza distinzione tra maiuscole e minuscole e in ordine naturale con un'altra stringa. Restituisce -1 se minore di, 1 se maggiore di, o 0 se uguale. "Minore di" e "maggiore di" sono determinati dai punti di codice Unicode di ogni stringa, che corrispondono approssimativamente all'ordine alfabetico.
Quando viene utilizzato per l'ordinamento, il confronto con l'ordine naturale ordina sequenze di numeri in base al valore combinato di ciascuna cifra, come spesso previsto, anziché al valore della singola cifra. Una sequenza ordinata di stringhe numerate sarà ["1", "2", "3", ...], non ["1", "10", "2", "3", ...].
Se il confronto tra caratteri raggiunge la fine di una stringa, ma l'altra stringa contiene più caratteri, utilizzerà la lunghezza come fattore decisivo: sarà restituito 1 se questa stringa è più lunga della stringa to, oppure -1 se è più corta. Si noti che la lunghezza delle stringhe vuote è sempre 0.
Per ottenere un risultato bool da un confronto di stringhe, utilizzare invece l'operatore ==. Vedi anche naturalcasecmp_to(), filenocasecmp_to() e casecmp_to().
int nocasecmp_to(to: String) const 🔗
Esegue un confronto senza distinzione tra maiuscole e minuscole con un'altra stringa. Restituisce -1 se minore di, 1 se maggiore di, o 0 se uguale. "Minore di" e "maggiore di" sono determinati dai punti di codice Unicode di ogni stringa, che corrispondono approssimativamente all'ordine alfabetico.
Se il confronto tra caratteri raggiunge la fine di una stringa, ma l'altra stringa contiene più caratteri, utilizzerà la lunghezza come fattore decisivo: sarà restituito 1 se questa stringa è più lunga della stringa to, oppure -1 se è più corta. Si noti che la lunghezza delle stringhe vuote è sempre 0.
Per ottenere un risultato bool da un confronto di stringhe, utilizzare invece l'operatore ==. Vedi anche casecmp_to(), filenocasecmp_to() e naturalnocasecmp_to().
String num(number: float, decimals: int = -1) static 🔗
Converte un float in una rappresentazione stringa di un numero decimale, con il numero di cifre decimali specificato in decimals.
Se decimals è -1 come predefinito, la rappresentazione di stringa può avere solo fino a 14 cifre significative, con le cifre prima del punto decimale che hanno la priorità sulle cifre dopo.
Gli zeri finali non sono inclusi nella stringa. L'ultima cifra viene arrotondata, non troncata.
String.num(3.141593) # Restituisce "3.141593"
String.num(3.141593, 3) # Restituisce "3.142"
String.num(3.14159300) # Restituisce "3.141593"
# Qui, l'ultima cifra verrà arrotondata per eccesso,
# il che riduce il conteggio totale delle cifre, poiché gli zeri finali vengono rimossi:
String.num(42.129999, 5) # Returns "42.13"
# Se `decimals` non è specificato, il numero massimo di cifre significative è 14:
String.num(-0.0000012345432123454321) # Restituisce "-0.00000123454321"
String.num(-10000.0000012345432123454321) # Restituisce "-10000.0000012345"
String num_int64(number: int, base: int = 10, capitalize_hex: bool = false) static 🔗
Converte il numero number in una rappresentazione di stringa, con la base specificata.
Per impostazione predefinita, base è impostato su decimale (10). Altre basi comuni nella programmazione includono binario (2), ottale (8), esadecimale (16).
Se capitalize_hex è true, le cifre superiori a 9 sono rappresentate in maiuscolo.
String num_scientific(number: float) static 🔗
Converte il numero number in una rappresentazione di stringa, in notazione scientifica.
var n = -5.2e8
print(n) # Stampa -520000000
print(String.num_scientific(n)) # Stampa -5.2e+08
// Questo metodo non è implementato in C#.
// Usa `string.ToString()` con "e" per ottenere risultati simili.
var n = -5.2e8f;
GD.Print(n); // Stampa -520000000
GD.Print(n.ToString("e1")); // Stampa -5.2e+008
Nota: In C#, questo metodo non è implementato. Per ottenere risultati simili, consulta le Stringhe di formato numerico standard di C#.
String num_uint64(number: int, base: int = 10, capitalize_hex: bool = false) static 🔗
Converte il numero senza segno number in una rappresentazione di stringa, con la base specificata.
Per impostazione predefinita, base è impostato su decimale (10). Altre basi comuni nella programmazione includono binario (2), ottale (8), esadecimale (16).
Se capitalize_hex è true, le cifre superiori a 9 sono rappresentate in maiuscolo.
String pad_decimals(digits: int) const 🔗
Formatta la stringa che rappresenta un numero in modo che abbia un numero esatto di cifre (digits) dopo il punto decimale.
String pad_zeros(digits: int) const 🔗
Formatta la stringa che rappresenta un numero in modo che abbia un numero esatto di cifre (digits) prima del punto decimale.
String path_join(path: String) const 🔗
Concatena path alla fine della stringa come sotto-percorso, aggiungendo / se necessario.
Esempio: "this/is".path_join("path") == "this/is/path".
String remove_char(what: int) const 🔗
Rimuove tutte le occorrenze del carattere Unicode con il codice what. Versione più veloce di replace() quando la chiave è lunga un solo carattere e la sostituzione è "".
String remove_chars(chars: String) const 🔗
Removes all occurrences of the characters in chars. See also remove_char().
String repeat(count: int) const 🔗
Ripete questa stringa un certo numero di volte. count deve essere maggiore di 0. Altrimenti, restituisce una stringa vuota.
String replace(what: String, forwhat: String) const 🔗
Sostituisce tutte le occorrenze di what all'interno della stringa con il forwhat specificato.
String replace_char(key: int, with: int) const 🔗
Sostituisce tutte le occorrenze del carattere Unicode con codice key con il carattere Unicode con codice with. Versione più veloce di replace() quando la chiave è lunga un solo carattere. Per ottenere un singolo carattere, utilizzare "X".unicode_at(0) (si noti che alcune stringhe, come lettere composte ed emoji, possono essere composte da più codici Unicode e non funzioneranno con questo metodo; utilizzare length() per esserne sicuri).
String replace_chars(keys: String, with: int) const 🔗
Sostituisce qualsiasi occorrenza dei caratteri in keys con il carattere Unicode con codice with. Vedi anche replace_char().
String replacen(what: String, forwhat: String) const 🔗
Sostituisce tutte le occorrenze senza distinzione tra maiuscole e minuscole di what all'interno della stringa con il forwhat specificato.
Restituisce la copia di questa stringa in ordine inverso. Questa operazione funziona su codici Unicode, piuttosto che su sequenze di codici, e potrebbe spezzare elementi come lettere composte o emoji.
int rfind(what: String, from: int = -1) const 🔗
Restituisce l'indice dell'ultima occorrenza di what in questa stringa, o -1 se non ce ne sono. L'inizio della ricerca può essere specificato con from, continuando fino all'inizio della stringa. Questo metodo è l'inverso di find().
Nota: Un valore negativo di from è convertito in un indice iniziale contando all'indietro dall'ultimo indice possibile con abbastanza spazio per trovare what.
Nota: Un valore di from maggiore dell'ultimo indice possibile con abbastanza spazio per trovare what è considerato fuori dai limiti e restituisce -1.
int rfindn(what: String, from: int = -1) const 🔗
Restituisce l'indice dell'ultima occorrenza di what in questa stringa o -1 se non ce ne sono, senza distinzione tra maiuscole e minuscole. L'indice di ricerca di partenza può essere specificato con from, continuando fino all'inizio della stringa. Questo metodo è l'inverso di findn().
String right(length: int) const 🔗
Restituisce gli ultimi length caratteri dalla fine della stringa. Se length è negativo, rimuove i primi length caratteri dall'inizio della stringa.
print("Hello World!".right(3)) # Stampa "ld!"
print("Hello World!".right(-4)) # Stampa "o World!"
String rpad(min_length: int, character: String = " ") const 🔗
Formatta la stringa in modo che sia lunga almeno min_length caratteri, aggiungendo più caratteri (character) a destra della stringa, se necessario. Vedi anche lpad().
PackedStringArray rsplit(delimiter: String = "", allow_empty: bool = true, maxsplit: int = 0) const 🔗
Divide la stringa tramite un delimiter e restituisce un array delle sottostringhe, a partire dalla fine della stringa. Le suddivisioni nell'array restituito appaiono nello stesso ordine della stringa originale. Se delimiter è una stringa vuota, ogni sottostringa sarà un singolo carattere.
Se allow_empty è false, le stringhe vuote tra delimitatori adiacenti vengono escluse dall'array.
Se maxsplit è maggiore di 0, il numero di suddivisioni non può superare maxsplit. Come predefinito, l'intera stringa viene suddivisa, il che è maggiormente identico a split().
var some_string = "Uno,Due,Tre,Quattro"
var some_array = some_string.rsplit(",", true, 1)
print(some_array.size()) # Stampa 2
print(some_array[0]) # Stampa "Uno,Due,Tre"
print(some_array[1]) # Stampa "Quattro"
// In C#, non esiste il metodo String.RSplit().
String rstrip(chars: String) const 🔗
Rimuove un insieme di caratteri definiti in chars dalla fine della stringa. Vedi anche lstrip().
Nota: chars non è un suffisso. Usa trim_suffix() per rimuovere un singolo suffisso, invece di insieme di caratteri.
PackedByteArray sha1_buffer() const 🔗
Restituisce l'hash SHA-1 della stringa sotto forma di PackedByteArray.
Restituisce l'hash SHA-1 della stringa sotto forma di un altra String.
PackedByteArray sha256_buffer() const 🔗
Restituisce l'hash SHA-256 della stringa sotto forma di String.
Restituisce l'hash SHA-256 della stringa sotto forma di un altra String.
float similarity(text: String) const 🔗
Restituisce l'indice di similarità (indice di Sørensen-Dice) di questa stringa rispetto a un'altra. Un risultato di 1.0 significa totalmente simile, mentre 0.0 significa totalmente dissimile.
print("ABC123".similarity("ABC123")) # Stampa 1.0
print("ABC123".similarity("XYZ456")) # Stampa 0.0
print("ABC123".similarity("123ABC")) # Stampa 0.8
print("ABC123".similarity("abc123")) # Stampa 0.4
String simplify_path() const 🔗
Se la stringa è un percorso di file valido, converte la stringa in un percorso canonico. Questo è il percorso più breve possibile, senza "./" e tutti gli "." e "/" non necessari.
var percorso_semplice = "./path/to///../file".simplify_path()
print(percorso_semplice ) # Stampa "path/file"
PackedStringArray split(delimiter: String = "", allow_empty: bool = true, maxsplit: int = 0) const 🔗
Divide la stringa tramite un delimiter e restituisce un array delle sottostringhe. Se delimiter è una stringa vuota, ogni sottostringa sarà un singolo carattere. Questo metodo è l'opposto di join().
Se allow_empty è false, le stringhe vuote tra delimitatori adiacenti vengono escluse dall'array.
Se maxsplit è maggiore di 0, il numero di suddivisioni non può superare maxsplit. Come predefinito, l'intera stringa viene suddivisa.
var some_array = "Uno,Due,Tre,Quattro".split(",", true, 2)
print(some_array.size()) # Stampa 3
print(some_array[0]) # Stampa "Uno"
print(some_array[1]) # Stampa "Due"
print(some_array[2]) # Stampa "Tre,Quattro"
// La funzione `Split()` di C# non supporta il parametro `maxsplit`.
var someArray = "Uno,Due,Tre".Split(",");
GD.Print(someArray[0]); // Stampa "Uno"
GD.Print(someArray[1]); // Stampa "Due"
GD.Print(someArray[2]); // Stampa "Tre"
Nota: Se hai bisogno solo di una sottostringa dall'array, considera di usare get_slice() che è più veloce. Se hai bisogno di dividere stringhe con regole più complesse, usa invece la classe RegEx.
PackedFloat64Array split_floats(delimiter: String, allow_empty: bool = true) const 🔗
Divide la stringa in più float tramite un delimiter e restituisce un PackedFloat64Array.
Se allow_empty è false, le conversioni float vuote o non valide tra delimitatori adiacenti vengono escluse.
var a = "1,2,4.5".split_floats(",") # a è [1.0, 2.0, 4.5]
var c = "1| ||4.5".split_floats("|") # c è [1.0, 0.0, 0.0, 4.5]
var b = "1| ||4.5".split_floats("|", false) # b è [1.0, 4.5]
String strip_edges(left: bool = true, right: bool = true) const 🔗
Rimuove tutti i caratteri non stampabili dall'inizio e alla fine della stringa. Questi includono spazi, tabulazioni (\t) e nuove righe (\n \r).
Se left è false, ignora l'inizio della stringa. Allo stesso modo, se right è false, ignora la fine della stringa.
String strip_escapes() const 🔗
Rimuove tutti i caratteri di escape dalla stringa. Questi includono tutti i caratteri di controllo non stampabili della prima pagina della tabella ASCII (valori da 0 a 31), come i caratteri di tabulazione (\t) e di nuova riga (\n, \r), ma non gli spazi.
String substr(from: int, len: int = -1) const 🔗
Restituisce parte della stringa dalla posizione from con lunghezza len. Se len è -1 (come per impostazione predefinita), restituisce il resto della stringa a partire dalla posizione specificata.
PackedByteArray to_ascii_buffer() const 🔗
Converte la stringa in un PackedByteArray codificato in ASCII/Latin-1. Questo metodo è leggermente più veloce di to_utf8_buffer(), ma sostituisce tutti i caratteri non supportati con spazi. Questo è l'inverso di PackedByteArray.get_string_from_ascii().
String to_camel_case() const 🔗
Restituisce la stringa convertita in camelCase.
Converte la stringa che rappresenta un numero decimale in un float. Questo metodo si ferma sul primo carattere non numerico, eccetto il primo punto decimale (.) e la lettera di esponente (e). Vedi anche is_valid_float().
var a = "12.35".to_float() # a è 12.35
var b = "1.2.3".to_float() # b è 1.2
var c = "12xy3".to_float() # c è 12.0
var d = "1e3".to_float() # d è 1000.0
var e = "Hello!".to_float() # e è 0.0
Converte la stringa che rappresenta un numero intero in un int. Questo metodo rimuove qualsiasi carattere non numerico e si ferma al primo punto decimale (.). Vedi anche is_valid_int().
var a = "123".to_int() # a is 123
var b = "x1y2z3".to_int() # b is 123
var c = "-1.2.3".to_int() # c is -1
var d = "Hello!".to_int() # d is 0
String to_kebab_case() const 🔗
Restituisce la stringa convertita in kebab-case.
Nota: I numeri seguiti da una singola lettera non vengono separati nella conversione per mantenere insieme alcune parole (come "2D").
"Node2D".to_kebab_case() # Restituisce "node-2d"
"2nd place".to_kebab_case() # Restituisce "2-nd-place"
"Texture3DAssetFolder".to_kebab_case() # Restituisce "texture-3d-asset-folder"
"Node2D".ToKebabCase(); // Restituisce "node-2d"
"2nd place".ToKebabCase(); // Restituisce "2-nd-place"
"Texture3DAssetFolder".ToKebabCase(); // Restituisce "texture-3d-asset-folder"
Restituisce la stringa convertita in lowercase.
PackedByteArray to_multibyte_char_buffer(encoding: String = "") const 🔗
Converte la stringa in un PackedByteArray codificato con code page multibyte di sistema. Se la conversione fallisce, viene restituito un array vuoto.
I valori consentiti per encoding dipendono dal sistema. Se encoding è una stringa vuota, viene utilizzata la codifica predefinita del sistema.
Per Windows, consultare i nomi .NET per i Code Page Identifiers.
Per macOS e Linux/BSD, consultare la documentazione della libreria
libiconveiconv --listper un elenco delle codifiche supportate.
String to_pascal_case() const 🔗
Restituisce la stringa convertita in PascalCase.
String to_snake_case() const 🔗
Restituisce la stringa convertita in snake_case.
Nota: I numeri seguiti da una singola lettera non vengono separati nella conversione per mantenere insieme alcune parole (come "2D").
"Node2D".to_snake_case() # Restituisce "node_2d"
"2nd place".to_snake_case() # Restituisce "2_nd_place"
"Texture3DAssetFolder".to_snake_case() # Restituisce "texture_3d_asset_folder"
"Node2D".ToSnakeCase(); // Restituisce "node_2d"
"2nd place".ToSnakeCase(); // Restituisce "2_nd_place"
"Texture3DAssetFolder".ToSnakeCase(); // Restituisce "texture_3d_asset_folder"
Restituisce la stringa convertita in UPPERCASE.
PackedByteArray to_utf8_buffer() const 🔗
Converte la stringa in un PackedByteArray codificato in UTF-8. Questo metodo è leggermente più lento di to_ascii_buffer(), ma supporta tutti i caratteri UTF-8. Nella maggior parte dei casi, è preferibile usare questo metodo. Questo è l'inverso di PackedByteArray.get_string_from_utf8().
PackedByteArray to_utf16_buffer() const 🔗
Converte la stringa in un PackedByteArray codificato in UTF-16. Questo è l'inverso di PackedByteArray.get_string_from_utf16().
PackedByteArray to_utf32_buffer() const 🔗
Converte la stringa in un PackedByteArray codificato in UTF-32. Questo è l'inverso di PackedByteArray.get_string_from_utf32().
PackedByteArray to_wchar_buffer() const 🔗
Converte la stringa in un PackedByteArray codificato in carattere largo (wchar_t, UTF-16 su Windows, UTF-32 su altre piattaforme). Questo è l'inverso di PackedByteArray.get_string_from_wchar().
String trim_prefix(prefix: String) const 🔗
Rimuove il prefisso prefix dall'inizio della stringa o restituisce la stringa invariata.
String trim_suffix(suffix: String) const 🔗
Rimuove il suffisso suffix dalla fine della stringa o restituisce la stringa invariata.
int unicode_at(at: int) const 🔗
Restituisce il codice carattere alla posizione at.
Vedi anche chr(), @GDScript.char() e @GDScript.ord().
Decodifica la stringa dal suo formato codificato in URL. Questo metodo è pensato per decodificare correttamente i parametri in un URL quando si riceve una richiesta HTTP. Vedi anche uri_encode().
var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
print(url.uri_decode()) # Stampa "$DOCS_URL/?highlight=Godot Engine:docs"
var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
GD.Print(url.URIDecode()) // Stampa "$DOCS_URL/?highlight=Godot Engine:docs"
Nota: Questo metodo decodifica + come spazio.
Codifica la stringa in un formato compatibile con URL. Questo metodo è pensato per codificare correttamente i parametri in un URL quando si invia una richiesta HTTP. Vedi anche uri_decode().
var prefix = "$DOCS_URL/?highlight="
var url = prefix + "Godot Engine:docs".uri_encode()
print(url) # Stampa "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
var prefix = "$DOCS_URL/?highlight=";
var url = prefix + "Godot Engine:docs".URIEncode();
GD.Print(url); // Stampa "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
String uri_file_decode() const 🔗
Decodifica il percorso di file dal suo formato codificato URL. A differenza di uri_decode(), questo metodo lascia + invariati.
String validate_filename() const 🔗
Restituisce una copia della stringa in cui tutti i caratteri non consentiti in is_valid_filename() vengono sostituiti con trattini bassi.
String validate_node_name() const 🔗
Restituisce una copia della stringa con tutti i caratteri non consentiti in Node.name (. : @ / " %) sostituiti con trattini bassi.
String xml_escape(escape_quotes: bool = false) const 🔗
Restituisce una copia della stringa con caratteri speciali sottoposti a escape attraverso lo standard XML. Se escape_quotes è true, anche i caratteri di virgolette singole (') e virgolette doppie (") vengono sottoposti a escape.
Restituisce una copia della stringa con i caratteri di escape sostituiti dai rispettivi significati, seguendo lo standard XML.
Descrizioni degli operatori
bool operator !=(right: String) 🔗
Restituisce true se entrambe le stringhe non contengono la stessa sequenza di caratteri.
bool operator !=(right: StringName) 🔗
Restituisce true se questa String non è equivalente allo StringName fornito.
String operator %(right: Variant) 🔗
Formatta la String, sostituendo i segnaposto con uno o più parametri. Per passare più parametri, right deve essere un Array.
print("Ho pescato %d pesci!" % 2) # Stampa "Ho pescato 2 pesci!"
var my_message = "In viaggio verso %s, a %2.2f km/h."
var location = "Deep Valley"
var speed = 40.3485
print(my_message % [location, speed]) # Stampa "In viaggio verso Deep Valley, a 40.35 km/h."
Per ulteriori informazioni, consulta il tutorial Formattazione di stringhe in GDScript.
Nota: in C#, questo operatore non è disponibile. Invece, consulta come interpolare le stringhe con "$".
String operator +(right: String) 🔗
Accoda right alla fine di questa String, noto anche come concatenazione di stringhe.
String operator +(right: StringName) 🔗
Accoda right alla fine di questa String, restituendo una String. Questo è noto anche come concatenazione di stringhe.
bool operator <(right: String) 🔗
Restituisce true se la String di sinistra precede right nell'ordine Unicode, che corrisponde approssimativamente all'ordine alfabetico. Utile per l'ordinamento.
bool operator <=(right: String) 🔗
Restituisce true se la String di sinistra precede right nell'ordine Unicode, che corrisponde approssimativamente all'ordine alfabetico, oppure se entrambi sono uguali.
bool operator ==(right: String) 🔗
Restituisce true se entrambe le stringhe contengono la stessa sequenza di caratteri.
bool operator ==(right: StringName) 🔗
Restituisce true se questa String è equivalente allo StringName fornito.
bool operator >(right: String) 🔗
Restituisce true se la String di sinistra viene dopo right nell'ordine Unicode, che corrisponde approssimativamente all'ordine alfabetico. Utile per l'ordinamento.
bool operator >=(right: String) 🔗
Restituisce true se la String di sinistra viene dopo right nell'ordine Unicode, che corrisponde approssimativamente all'ordine alfabetico, oppure se entrambi sono uguali.
String operator [](index: int) 🔗
Restituisce una nuova String che contiene solo il carattere all'indice index. Gli indici iniziano da 0. Se index è maggiore o uguale a 0, il carattere viene recuperato a partire dall'inizio della stringa. Se index è un valore negativo, viene recuperato a partire dalla fine. L'accesso a una stringa fuori dai limiti causerà un errore di esecuzione, mettendo in pausa l'esecuzione del progetto se eseguito dall'editor.