GDScript offers a feature called format strings, which allows reusing text
templates to succinctly create different but similar strings.

Format strings are just like normal strings, except they contain certain
placeholder character-sequences. These placeholders can then easily be replaced
by parameters handed to the format string.

As an example, with %s as a placeholder, the format string "Hello%s,howareyou? can easily be changed to "HelloWorld,howareyou?". Notice
the placeholder is in the middle of the string; modifying it without format
strings could be cumbersome.

# Define a format string with placeholder '%s'varformat_string="We're waiting for %s."# Using the '%' operator, the placeholder is replaced with the desired valuevaractual_string=format_string%"Godot"print(actual_string)# Output: "We're waiting for Godot."

Placeholders always start with a %, but the next character or characters,
the format specifier, determines how the given value is converted to a
string.

The %s seen in the example above is the simplest placeholder and works for
most use cases: it converts the value by the same method by which an implicit
String conversion or str() would convert it. Strings remain unchanged,
Booleans turn into either "True" or "False", an integral or real number
becomes a decimal, other types usually return their data in a human-readable
string.

There is also another way to format text in GDScript, namely the String.format()
method. It replaces all occurrences of a key in the string with the corresponding
value. The method can handle arrays or dictionaries for the key/value pairs.

Arrays can be used as key, index, or mixed style (see below examples). Order only
matters when the index or mixed style of Array is used.

Format strings may contain multiple placeholders. In such a case, the values
are handed in the form of an array, one value per placeholder (unless using a
format specifier with *, see dynamic padding):

varformat_string="%s was reluctant to learn %s, but now he enjoys it."varactual_string=format_string%["Estragon","GDScript"]print(actual_string)# Output: "Estragon was reluctant to learn GDScript, but now he enjoys it."

Note the values are inserted in order. Remember all placeholders must be
replaced at once, so there must be an appropriate number of values.

There are format specifiers other than s that can be used in placeholders.
They consist of one or more characters. Some of them work by themselves like
s, some appear before other characters, some only work with certain
values or characters.

The . (dot), * (asterisk), - (minus sign) and digit
(0-9) characters are used for padding. This allows printing several
values aligned vertically as if in a column, provided a fixed-width font is
used.

To pad a string to a minimum length, add an integer to the specifier:

print("%10d"%12345)# output: " 12345"# 5 leading spaces for a total length of 10

If the integer starts with 0, integral values are padded with zeroes
instead of white space:

print("%010d"%12345)# output: "0000012345"

Precision can be specified for real numbers by adding a . (dot) with an
integer following it. With no integer after ., a precision of 0 is used,
rounding to integral value. The integer to use for padding must appear before
the dot.

By using the * (asterisk) character, the padding or precision can be set
without modifying the format string. It is used in place of an integer in the
format specifier. The values for padding and precision are then passed when
formatting: