|
@@ -23,6 +23,10 @@ You will usually just pass a :ref:`String<class_String>` to methods expecting a
|
|
|
|
|
|
See also :ref:`NodePath<class_NodePath>`, which is a similar concept specifically designed to store pre-parsed node paths.
|
|
|
|
|
|
+Some string methods have corresponding variations. Variations suffixed with ``n`` (:ref:`countn<class_StringName_method_countn>`, :ref:`findn<class_StringName_method_findn>`, :ref:`replacen<class_StringName_method_replacen>`, etc.) are **case-insensitive** (they make no distinction between uppercase and lowercase letters). Method variations prefixed with ``r`` (:ref:`rfind<class_StringName_method_rfind>`, :ref:`rsplit<class_StringName_method_rsplit>`, etc.) are reversed, and start from the end of the string, instead of the beginning.
|
|
|
+
|
|
|
+\ **Note:** In a boolean context, a **StringName** will evaluate to ``false`` if it is empty (``StringName("")``). Otherwise, a **StringName** will always evaluate to ``true``.
|
|
|
+
|
|
|
.. rst-class:: classref-reftable-group
|
|
|
|
|
|
Constructors
|
|
@@ -47,9 +51,191 @@ Methods
|
|
|
.. table::
|
|
|
:widths: auto
|
|
|
|
|
|
- +-----------------------+---------------------------------------------------------------+
|
|
|
- | :ref:`int<class_int>` | :ref:`hash<class_StringName_method_hash>` **(** **)** |const| |
|
|
|
- +-----------------------+---------------------------------------------------------------+
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`begins_with<class_StringName_method_begins_with>` **(** :ref:`String<class_String>` text **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`bigrams<class_StringName_method_bigrams>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`bin_to_int<class_StringName_method_bin_to_int>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`c_escape<class_StringName_method_c_escape>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`c_unescape<class_StringName_method_c_unescape>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`capitalize<class_StringName_method_capitalize>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`casecmp_to<class_StringName_method_casecmp_to>` **(** :ref:`String<class_String>` to **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`contains<class_StringName_method_contains>` **(** :ref:`String<class_String>` what **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`count<class_StringName_method_count>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=0 **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`countn<class_StringName_method_countn>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=0 **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`dedent<class_StringName_method_dedent>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`ends_with<class_StringName_method_ends_with>` **(** :ref:`String<class_String>` text **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`find<class_StringName_method_find>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`findn<class_StringName_method_findn>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`format<class_StringName_method_format>` **(** :ref:`Variant<class_Variant>` values, :ref:`String<class_String>` placeholder="{_}" **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`get_base_dir<class_StringName_method_get_base_dir>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`get_basename<class_StringName_method_get_basename>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`get_extension<class_StringName_method_get_extension>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`get_file<class_StringName_method_get_file>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`get_slice<class_StringName_method_get_slice>` **(** :ref:`String<class_String>` delimiter, :ref:`int<class_int>` slice **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`get_slice_count<class_StringName_method_get_slice_count>` **(** :ref:`String<class_String>` delimiter **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`get_slicec<class_StringName_method_get_slicec>` **(** :ref:`int<class_int>` delimiter, :ref:`int<class_int>` slice **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`hash<class_StringName_method_hash>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`hex_to_int<class_StringName_method_hex_to_int>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`indent<class_StringName_method_indent>` **(** :ref:`String<class_String>` prefix **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`insert<class_StringName_method_insert>` **(** :ref:`int<class_int>` position, :ref:`String<class_String>` what **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_absolute_path<class_StringName_method_is_absolute_path>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_empty<class_StringName_method_is_empty>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_relative_path<class_StringName_method_is_relative_path>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_subsequence_of<class_StringName_method_is_subsequence_of>` **(** :ref:`String<class_String>` text **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_subsequence_ofn<class_StringName_method_is_subsequence_ofn>` **(** :ref:`String<class_String>` text **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_valid_filename<class_StringName_method_is_valid_filename>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_valid_float<class_StringName_method_is_valid_float>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_valid_hex_number<class_StringName_method_is_valid_hex_number>` **(** :ref:`bool<class_bool>` with_prefix=false **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_valid_html_color<class_StringName_method_is_valid_html_color>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_valid_identifier<class_StringName_method_is_valid_identifier>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_valid_int<class_StringName_method_is_valid_int>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`is_valid_ip_address<class_StringName_method_is_valid_ip_address>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`join<class_StringName_method_join>` **(** :ref:`PackedStringArray<class_PackedStringArray>` parts **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`json_escape<class_StringName_method_json_escape>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`left<class_StringName_method_left>` **(** :ref:`int<class_int>` length **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`length<class_StringName_method_length>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`lpad<class_StringName_method_lpad>` **(** :ref:`int<class_int>` min_length, :ref:`String<class_String>` character=" " **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`lstrip<class_StringName_method_lstrip>` **(** :ref:`String<class_String>` chars **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`match<class_StringName_method_match>` **(** :ref:`String<class_String>` expr **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`matchn<class_StringName_method_matchn>` **(** :ref:`String<class_String>` expr **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`md5_buffer<class_StringName_method_md5_buffer>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`md5_text<class_StringName_method_md5_text>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`naturalnocasecmp_to<class_StringName_method_naturalnocasecmp_to>` **(** :ref:`String<class_String>` to **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`nocasecmp_to<class_StringName_method_nocasecmp_to>` **(** :ref:`String<class_String>` to **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`pad_decimals<class_StringName_method_pad_decimals>` **(** :ref:`int<class_int>` digits **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`pad_zeros<class_StringName_method_pad_zeros>` **(** :ref:`int<class_int>` digits **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`path_join<class_StringName_method_path_join>` **(** :ref:`String<class_String>` file **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`repeat<class_StringName_method_repeat>` **(** :ref:`int<class_int>` count **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`replace<class_StringName_method_replace>` **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`replacen<class_StringName_method_replacen>` **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`rfind<class_StringName_method_rfind>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`rfindn<class_StringName_method_rfindn>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`right<class_StringName_method_right>` **(** :ref:`int<class_int>` length **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`rpad<class_StringName_method_rpad>` **(** :ref:`int<class_int>` min_length, :ref:`String<class_String>` character=" " **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`rsplit<class_StringName_method_rsplit>` **(** :ref:`String<class_String>` delimiter="", :ref:`bool<class_bool>` allow_empty=true, :ref:`int<class_int>` maxsplit=0 **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`rstrip<class_StringName_method_rstrip>` **(** :ref:`String<class_String>` chars **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`sha1_buffer<class_StringName_method_sha1_buffer>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`sha1_text<class_StringName_method_sha1_text>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`sha256_buffer<class_StringName_method_sha256_buffer>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`sha256_text<class_StringName_method_sha256_text>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`float<class_float>` | :ref:`similarity<class_StringName_method_similarity>` **(** :ref:`String<class_String>` text **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`simplify_path<class_StringName_method_simplify_path>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`split<class_StringName_method_split>` **(** :ref:`String<class_String>` delimiter="", :ref:`bool<class_bool>` allow_empty=true, :ref:`int<class_int>` maxsplit=0 **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedFloat64Array<class_PackedFloat64Array>` | :ref:`split_floats<class_StringName_method_split_floats>` **(** :ref:`String<class_String>` delimiter, :ref:`bool<class_bool>` allow_empty=true **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`strip_edges<class_StringName_method_strip_edges>` **(** :ref:`bool<class_bool>` left=true, :ref:`bool<class_bool>` right=true **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`strip_escapes<class_StringName_method_strip_escapes>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`substr<class_StringName_method_substr>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` len=-1 **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`to_ascii_buffer<class_StringName_method_to_ascii_buffer>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`to_camel_case<class_StringName_method_to_camel_case>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`float<class_float>` | :ref:`to_float<class_StringName_method_to_float>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`to_int<class_StringName_method_to_int>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`to_lower<class_StringName_method_to_lower>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`to_pascal_case<class_StringName_method_to_pascal_case>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`to_snake_case<class_StringName_method_to_snake_case>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`to_upper<class_StringName_method_to_upper>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`to_utf16_buffer<class_StringName_method_to_utf16_buffer>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`to_utf32_buffer<class_StringName_method_to_utf32_buffer>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`to_utf8_buffer<class_StringName_method_to_utf8_buffer>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`trim_prefix<class_StringName_method_trim_prefix>` **(** :ref:`String<class_String>` prefix **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`trim_suffix<class_StringName_method_trim_suffix>` **(** :ref:`String<class_String>` suffix **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`int<class_int>` | :ref:`unicode_at<class_StringName_method_unicode_at>` **(** :ref:`int<class_int>` at **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`uri_decode<class_StringName_method_uri_decode>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`uri_encode<class_StringName_method_uri_encode>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`validate_node_name<class_StringName_method_validate_node_name>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`xml_escape<class_StringName_method_xml_escape>` **(** :ref:`bool<class_bool>` escape_quotes=false **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`xml_unescape<class_StringName_method_xml_unescape>` **(** **)** |const| |
|
|
|
+ +-----------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
.. rst-class:: classref-reftable-group
|
|
|
|
|
@@ -59,23 +245,29 @@ Operators
|
|
|
.. table::
|
|
|
:widths: auto
|
|
|
|
|
|
- +-------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
- | :ref:`bool<class_bool>` | :ref:`operator !=<class_StringName_operator_neq_String>` **(** :ref:`String<class_String>` right **)** |
|
|
|
- +-------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
- | :ref:`bool<class_bool>` | :ref:`operator !=<class_StringName_operator_neq_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
- +-------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
- | :ref:`bool<class_bool>` | :ref:`operator \<<class_StringName_operator_lt_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
- +-------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
- | :ref:`bool<class_bool>` | :ref:`operator \<=<class_StringName_operator_lte_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
- +-------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
- | :ref:`bool<class_bool>` | :ref:`operator ==<class_StringName_operator_eq_String>` **(** :ref:`String<class_String>` right **)** |
|
|
|
- +-------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
- | :ref:`bool<class_bool>` | :ref:`operator ==<class_StringName_operator_eq_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
- +-------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
- | :ref:`bool<class_bool>` | :ref:`operator ><class_StringName_operator_gt_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
- +-------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
- | :ref:`bool<class_bool>` | :ref:`operator >=<class_StringName_operator_gte_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
- +-------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`operator !=<class_StringName_operator_neq_String>` **(** :ref:`String<class_String>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`operator !=<class_StringName_operator_neq_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`operator %<class_StringName_operator_mod_Variant>` **(** :ref:`Variant<class_Variant>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`operator +<class_StringName_operator_sum_String>` **(** :ref:`String<class_String>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`String<class_String>` | :ref:`operator +<class_StringName_operator_sum_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`operator \<<class_StringName_operator_lt_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`operator \<=<class_StringName_operator_lte_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`operator ==<class_StringName_operator_eq_String>` **(** :ref:`String<class_String>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`operator ==<class_StringName_operator_eq_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`operator ><class_StringName_operator_gt_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
+ | :ref:`bool<class_bool>` | :ref:`operator >=<class_StringName_operator_gte_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
|
|
+ +-----------------------------+---------------------------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
.. rst-class:: classref-section-separator
|
|
|
|
|
@@ -123,42 +315,1552 @@ Creates a new **StringName** from the given :ref:`String<class_String>`. In GDSc
|
|
|
Method Descriptions
|
|
|
-------------------
|
|
|
|
|
|
-.. _class_StringName_method_hash:
|
|
|
+.. _class_StringName_method_begins_with:
|
|
|
|
|
|
.. rst-class:: classref-method
|
|
|
|
|
|
-:ref:`int<class_int>` **hash** **(** **)** |const|
|
|
|
+:ref:`bool<class_bool>` **begins_with** **(** :ref:`String<class_String>` text **)** |const|
|
|
|
|
|
|
-Returns the 32-bit hash value representing the **StringName**'s contents.
|
|
|
+Returns ``true`` if the string begins with the given ``text``. See also :ref:`ends_with<class_StringName_method_ends_with>`.
|
|
|
|
|
|
-.. rst-class:: classref-section-separator
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
|
|
|
----
|
|
|
|
|
|
-.. rst-class:: classref-descriptions-group
|
|
|
+.. _class_StringName_method_bigrams:
|
|
|
|
|
|
-Operator Descriptions
|
|
|
----------------------
|
|
|
+.. rst-class:: classref-method
|
|
|
|
|
|
-.. _class_StringName_operator_neq_String:
|
|
|
+:ref:`PackedStringArray<class_PackedStringArray>` **bigrams** **(** **)** |const|
|
|
|
|
|
|
-.. rst-class:: classref-operator
|
|
|
+Returns an array containing the bigrams (pairs of consecutive characters) of this string.
|
|
|
|
|
|
-:ref:`bool<class_bool>` **operator !=** **(** :ref:`String<class_String>` right **)**
|
|
|
+::
|
|
|
|
|
|
-Returns ``true`` if this **StringName** is not equivalent to the given :ref:`String<class_String>`.
|
|
|
+ print("Get up!".bigrams()) # Prints ["Ge", "et", "t ", " u", "up", "p!"]
|
|
|
|
|
|
.. rst-class:: classref-item-separator
|
|
|
|
|
|
----
|
|
|
|
|
|
-.. _class_StringName_operator_neq_StringName:
|
|
|
+.. _class_StringName_method_bin_to_int:
|
|
|
|
|
|
-.. rst-class:: classref-operator
|
|
|
+.. rst-class:: classref-method
|
|
|
|
|
|
-:ref:`bool<class_bool>` **operator !=** **(** :ref:`StringName<class_StringName>` right **)**
|
|
|
+:ref:`int<class_int>` **bin_to_int** **(** **)** |const|
|
|
|
|
|
|
-Returns ``true`` if the **StringName** and ``right`` do not refer to the same name. Comparisons between **StringName**\ s are much faster than regular :ref:`String<class_String>` comparisons.
|
|
|
+Converts the string representing a binary number into an :ref:`int<class_int>`. The string may optionally be prefixed with ``"0b"``, and an additional ``-`` prefix for negative numbers.
|
|
|
+
|
|
|
+
|
|
|
+.. tabs::
|
|
|
+
|
|
|
+ .. code-tab:: gdscript
|
|
|
+
|
|
|
+ print("101".bin_to_int()) # Prints 5
|
|
|
+ print("0b101".bin_to_int()) # Prints 5
|
|
|
+ print("-0b10".bin_to_int()) # Prints -2
|
|
|
+
|
|
|
+ .. code-tab:: csharp
|
|
|
+
|
|
|
+ GD.Print("101".BinToInt()); // Prints 5
|
|
|
+ GD.Print("0b101".BinToInt()); // Prints 5
|
|
|
+ GD.Print("-0b10".BinToInt()); // Prints -2
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_c_escape:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **c_escape** **(** **)** |const|
|
|
|
+
|
|
|
+Returns a copy of the string with special characters escaped using the C language standard.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_c_unescape:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **c_unescape** **(** **)** |const|
|
|
|
+
|
|
|
+Returns a copy of the string with escaped characters replaced by their meanings. Supported escape sequences are ``\'``, ``\"``, ``\\``, ``\a``, ``\b``, ``\f``, ``\n``, ``\r``, ``\t``, ``\v``.
|
|
|
+
|
|
|
+\ **Note:** Unlike the GDScript parser, this method doesn't support the ``\uXXXX`` escape sequence.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_capitalize:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **capitalize** **(** **)** |const|
|
|
|
+
|
|
|
+Changes the appearance of the string: replaces underscores (``_``) 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.
|
|
|
+
|
|
|
+
|
|
|
+.. tabs::
|
|
|
+
|
|
|
+ .. code-tab:: gdscript
|
|
|
+
|
|
|
+ "move_local_x".capitalize() # Returns "Move Local X"
|
|
|
+ "sceneFile_path".capitalize() # Returns "Scene File Path"
|
|
|
+
|
|
|
+ .. code-tab:: csharp
|
|
|
+
|
|
|
+ "move_local_x".Capitalize(); // Returns "Move Local X"
|
|
|
+ "sceneFile_path".Capitalize(); // Returns "Scene File Path"
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+\ **Note:** This method not the same as the default appearance of properties in the Inspector dock, as it does not capitalize acronyms (``"2D"``, ``"FPS"``, ``"PNG"``, etc.) as you may expect.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_casecmp_to:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **casecmp_to** **(** :ref:`String<class_String>` to **)** |const|
|
|
|
+
|
|
|
+Performs a case-sensitive comparison to another string. Returns ``-1`` if less than, ``1`` if greater than, or ``0`` if equal. "Less than" and "greater than" are determined by the `Unicode code points <https://en.wikipedia.org/wiki/List_of_Unicode_characters>`__ of each string, which roughly matches the alphabetical order.
|
|
|
+
|
|
|
+With different string lengths, returns ``1`` if this string is longer than the ``to`` string, or ``-1`` if shorter. Note that the length of empty strings is *always* ``0``.
|
|
|
+
|
|
|
+To get a :ref:`bool<class_bool>` result from a string comparison, use the ``==`` operator instead. See also :ref:`nocasecmp_to<class_StringName_method_nocasecmp_to>` and :ref:`naturalnocasecmp_to<class_StringName_method_naturalnocasecmp_to>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_contains:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **contains** **(** :ref:`String<class_String>` what **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if the string contains ``what``. In GDScript, this corresponds to the ``in`` operator.
|
|
|
+
|
|
|
+
|
|
|
+.. tabs::
|
|
|
+
|
|
|
+ .. code-tab:: gdscript
|
|
|
+
|
|
|
+ print("Node".contains("de")) # Prints true
|
|
|
+ print("team".contains("I")) # Prints false
|
|
|
+ print("I" in "team") # Prints false
|
|
|
+
|
|
|
+ .. code-tab:: csharp
|
|
|
+
|
|
|
+ GD.Print("Node".Contains("de")); // Prints true
|
|
|
+ GD.Print("team".Contains("I")); // Prints false
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+If you need to know where ``what`` is within the string, use :ref:`find<class_StringName_method_find>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_count:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **count** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=0 **)** |const|
|
|
|
+
|
|
|
+Returns the number of occurrences of the substring ``what`` between ``from`` and ``to`` positions. If ``to`` is 0, the search continues until the end of the string.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_countn:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **countn** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=0 **)** |const|
|
|
|
+
|
|
|
+Returns the number of occurrences of the substring ``what`` between ``from`` and ``to`` positions, **ignoring case**. If ``to`` is 0, the search continues until the end of the string.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_dedent:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **dedent** **(** **)** |const|
|
|
|
+
|
|
|
+Returns a copy of the string with indentation (leading tabs and spaces) removed. See also :ref:`indent<class_StringName_method_indent>` to add indentation.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_ends_with:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **ends_with** **(** :ref:`String<class_String>` text **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if the string ends with the given ``text``. See also :ref:`begins_with<class_StringName_method_begins_with>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_find:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **find** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)** |const|
|
|
|
+
|
|
|
+Returns the index of the **first** occurrence of ``what`` in this string, or ``-1`` if there are none. The search's start can be specified with ``from``, continuing to the end of the string.
|
|
|
+
|
|
|
+
|
|
|
+.. tabs::
|
|
|
+
|
|
|
+ .. code-tab:: gdscript
|
|
|
+
|
|
|
+ print("Team".find("I")) # Prints -1
|
|
|
+
|
|
|
+ print("Potato".find("t")) # Prints 2
|
|
|
+ print("Potato".find("t", 3)) # Prints 4
|
|
|
+ print("Potato".find("t", 5)) # Prints -1
|
|
|
+
|
|
|
+ .. code-tab:: csharp
|
|
|
+
|
|
|
+ GD.Print("Team".Find("I")); // Prints -1
|
|
|
+
|
|
|
+ GD.Print("Potato".Find("t")); // Prints 2
|
|
|
+ GD.print("Potato".Find("t", 3)); // Prints 4
|
|
|
+ GD.print("Potato".Find("t", 5)); // Prints -1
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+\ **Note:** If you just want to know whether the string contains ``what``, use :ref:`contains<class_StringName_method_contains>`. In GDScript, you may also use the ``in`` operator.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_findn:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **findn** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)** |const|
|
|
|
+
|
|
|
+Returns the index of the **first** **case-insensitive** occurrence of ``what`` in this string, or ``-1`` if there are none. The starting search index can be specified with ``from``, continuing to the end of the string.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_format:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **format** **(** :ref:`Variant<class_Variant>` values, :ref:`String<class_String>` placeholder="{_}" **)** |const|
|
|
|
+
|
|
|
+Formats the string by replacing all occurrences of ``placeholder`` with the elements of ``values``.
|
|
|
+
|
|
|
+\ ``values`` can be a :ref:`Dictionary<class_Dictionary>` or an :ref:`Array<class_Array>`. Any underscores in ``placeholder`` will be replaced with the corresponding keys in advance. Array elements use their index as keys.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ # Prints "Waiting for Godot is a play by Samuel Beckett, and Godot Engine is named after it."
|
|
|
+ var use_array_values = "Waiting for {0} is a play by {1}, and {0} Engine is named after it."
|
|
|
+ print(use_array_values.format(["Godot", "Samuel Beckett"]))
|
|
|
+
|
|
|
+ # Prints "User 42 is Godot."
|
|
|
+ print("User {id} is {name}.".format({"id": 42, "name": "Godot"}))
|
|
|
+
|
|
|
+Some additional handling is performed when ``values`` is an :ref:`Array<class_Array>`. If ``placeholder`` does not contain an underscore, the elements of the ``values`` array will be used to replace one occurrence of the placeholder in order; If an element of ``values`` is another 2-element array, it'll be interpreted as a key-value pair.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ # Prints "User 42 is Godot."
|
|
|
+ print("User {} is {}.".format([42, "Godot"], "{}"))
|
|
|
+ print("User {id} is {name}.".format([["id", 42], ["name", "Godot"]]))
|
|
|
+
|
|
|
+See also the :doc:`GDScript format string <../tutorials/scripting/gdscript/gdscript_format_string>` tutorial.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_get_base_dir:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **get_base_dir** **(** **)** |const|
|
|
|
+
|
|
|
+If the string is a valid file path, returns the base directory name.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ var dir_path = "/path/to/file.txt".get_base_dir() # dir_path is "/path/to"
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_get_basename:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **get_basename** **(** **)** |const|
|
|
|
+
|
|
|
+If the string is a valid file path, returns the full file path, without the extension.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ var base = "/path/to/file.txt".get_basename() # base is "/path/to/file"
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_get_extension:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **get_extension** **(** **)** |const|
|
|
|
+
|
|
|
+If the string is a valid file name or path, returns the file extension without the leading period (``.``). Otherwise, returns an empty string.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ var a = "/path/to/file.txt".get_extension() # a is "txt"
|
|
|
+ var b = "cool.txt".get_extension() # b is "txt"
|
|
|
+ var c = "cool.font.tres".get_extension() # c is "tres"
|
|
|
+ var d = ".pack1".get_extension() # d is "pack1"
|
|
|
+
|
|
|
+ var e = "file.txt.".get_extension() # e is ""
|
|
|
+ var f = "file.txt..".get_extension() # f is ""
|
|
|
+ var g = "txt".get_extension() # g is ""
|
|
|
+ var h = "".get_extension() # h is ""
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_get_file:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **get_file** **(** **)** |const|
|
|
|
+
|
|
|
+If the string is a valid file path, returns the file name, including the extension.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ var file = "/path/to/icon.png".get_file() # file is "icon.png"
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_get_slice:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **get_slice** **(** :ref:`String<class_String>` delimiter, :ref:`int<class_int>` slice **)** |const|
|
|
|
+
|
|
|
+Splits the string using a ``delimiter`` and returns the substring at index ``slice``. Returns an empty string if the ``slice`` does not exist.
|
|
|
+
|
|
|
+This is faster than :ref:`split<class_StringName_method_split>`, if you only need one substring.
|
|
|
+
|
|
|
+\ **Example:**\
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ print("i/am/example/hi".get_slice("/", 2)) # Prints "example"
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_get_slice_count:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **get_slice_count** **(** :ref:`String<class_String>` delimiter **)** |const|
|
|
|
+
|
|
|
+Returns the total number of slices when the string is split with the given ``delimiter`` (see :ref:`split<class_StringName_method_split>`).
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_get_slicec:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **get_slicec** **(** :ref:`int<class_int>` delimiter, :ref:`int<class_int>` slice **)** |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 :ref:`split<class_StringName_method_split>`, if you only need one substring.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_hash:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **hash** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the 32-bit hash value representing the string's contents.
|
|
|
+
|
|
|
+\ **Note:** Strings with equal hash values are *not* guaranteed to be the same, as a result of hash collisions. On the countrary, strings with different hash values are guaranteed to be different.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_hex_to_int:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **hex_to_int** **(** **)** |const|
|
|
|
+
|
|
|
+Converts the string representing a hexadecimal number into an :ref:`int<class_int>`. The string may be optionally prefixed with ``"0x"``, and an additional ``-`` prefix for negative numbers.
|
|
|
+
|
|
|
+
|
|
|
+.. tabs::
|
|
|
+
|
|
|
+ .. code-tab:: gdscript
|
|
|
+
|
|
|
+ print("0xff".hex_to_int()) # Prints 255
|
|
|
+ print("ab".hex_to_int()) # Prints 171
|
|
|
+
|
|
|
+ .. code-tab:: csharp
|
|
|
+
|
|
|
+ GD.Print("0xff".HexToInt()); // Prints 255
|
|
|
+ GD.Print("ab".HexToInt()); // Prints 171
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_indent:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **indent** **(** :ref:`String<class_String>` prefix **)** |const|
|
|
|
+
|
|
|
+Indents every line of the string with the given ``prefix``. Empty lines are not indented. See also :ref:`dedent<class_StringName_method_dedent>` to remove indentation.
|
|
|
+
|
|
|
+For example, the string can be indented with two tabulations using ``"\t\t"``, or four spaces using ``" "``.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_insert:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **insert** **(** :ref:`int<class_int>` position, :ref:`String<class_String>` what **)** |const|
|
|
|
+
|
|
|
+Inserts ``what`` at the given ``position`` in the string.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_absolute_path:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_absolute_path** **(** **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if the string is a path to a file or directory, and its starting point is explicitly defined. This method is the opposite of :ref:`is_relative_path<class_StringName_method_is_relative_path>`.
|
|
|
+
|
|
|
+This includes all paths starting with ``"res://"``, ``"user://"``, ``"C:\"``, ``"/"``, etc.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_empty:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_empty** **(** **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if the string's length is ``0`` (``""``). See also :ref:`length<class_StringName_method_length>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_relative_path:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_relative_path** **(** **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if the string is a path, and its starting point is dependent on context. The path could begin from the current directory, or the current :ref:`Node<class_Node>` (if the string is derived from a :ref:`NodePath<class_NodePath>`), and may sometimes be prefixed with ``"./"``. This method is the opposite of :ref:`is_absolute_path<class_StringName_method_is_absolute_path>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_subsequence_of:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_subsequence_of** **(** :ref:`String<class_String>` text **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if all characters of this string can be found in ``text`` in their original order.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ var text = "Wow, incredible!"
|
|
|
+
|
|
|
+ print("inedible".is_subsequence_of(text)) # Prints true
|
|
|
+ print("Word!".is_subsequence_of(text)) # Prints true
|
|
|
+ print("Window".is_subsequence_of(text)) # Prints false
|
|
|
+ print("".is_subsequence_of(text)) # Prints true
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_subsequence_ofn:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_subsequence_ofn** **(** :ref:`String<class_String>` text **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if all characters of this string can be found in ``text`` in their original order, **ignoring case**.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_valid_filename:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_valid_filename** **(** **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if this string does not contain characters that are not allowed in file names (``:`` ``/`` ``\`` ``?`` ``*`` ``"`` ``|`` ``%`` ``<`` ``>``).
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_valid_float:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_valid_float** **(** **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if this string represents a valid floating-point number. A valid float may contain only digits, one decimal point (``.``), and the exponent letter (``e``). It may also be prefixed with a positive (``+``) or negative (``-``) sign. Any valid integer is also a valid float (see :ref:`is_valid_int<class_StringName_method_is_valid_int>`). See also :ref:`to_float<class_StringName_method_to_float>`.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ print("1.7".is_valid_float()) # Prints true
|
|
|
+ print("24".is_valid_float()) # Prints true
|
|
|
+ print("7e3".is_valid_float()) # Prints true
|
|
|
+ print("Hello".is_valid_float()) # Prints false
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_valid_hex_number:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_valid_hex_number** **(** :ref:`bool<class_bool>` with_prefix=false **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if this string is a valid hexadecimal number. A valid hexadecimal number only contains digits or letters ``A`` to ``F`` (either uppercase or lowercase), and may be prefixed with a positive (``+``) or negative (``-``) sign.
|
|
|
+
|
|
|
+If ``with_prefix`` is ``true``, the hexadecimal number needs to prefixed by ``"0x"`` to be considered valid.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ print("A08E".is_valid_hex_number()) # Prints true
|
|
|
+ print("-AbCdEf".is_valid_hex_number()) # Prints true
|
|
|
+ print("2.5".is_valid_hex_number()) # Prints false
|
|
|
+
|
|
|
+ print("0xDEADC0DE".is_valid_hex_number(true)) # Prints true
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_valid_html_color:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_valid_html_color** **(** **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if this string is a valid color in hexadecimal HTML notation. The string must be a hexadecimal value (see :ref:`is_valid_hex_number<class_StringName_method_is_valid_hex_number>`) of either 3, 4, 6 or 8 digits, and may be prefixed by a hash sign (``#``). Other HTML notations for colors, such as names or ``hsl()``, are not considered valid. See also :ref:`Color.html<class_Color_method_html>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_valid_identifier:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_valid_identifier** **(** **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores (``_``), and the first character may not be a digit.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ 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
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_valid_int:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_valid_int** **(** **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if this string represents a valid integer. A valid integer only contains digits, and may be prefixed with a positive (``+``) or negative (``-``) sign. See also :ref:`to_int<class_StringName_method_to_int>`.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ print("7".is_valid_int()) # Prints true
|
|
|
+ print("1.65".is_valid_int()) # Prints false
|
|
|
+ print("Hi".is_valid_int()) # Prints false
|
|
|
+ print("+3".is_valid_int()) # Prints true
|
|
|
+ print("-12".is_valid_int()) # Prints true
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_is_valid_ip_address:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **is_valid_ip_address** **(** **)** |const|
|
|
|
+
|
|
|
+Returns ``true`` if this string represents a well-formatted IPv4 or IPv6 address. This method considers `reserved IP addresses <https://en.wikipedia.org/wiki/Reserved_IP_addresses>`__ such as ``"0.0.0.0"`` and ``"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"`` as valid.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_join:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **join** **(** :ref:`PackedStringArray<class_PackedStringArray>` parts **)** |const|
|
|
|
+
|
|
|
+Returns the concatenation of ``parts``' elements, with each element separated by the string calling this method. This method is the opposite of :ref:`split<class_StringName_method_split>`.
|
|
|
+
|
|
|
+\ **Example:**\
|
|
|
+
|
|
|
+
|
|
|
+.. tabs::
|
|
|
+
|
|
|
+ .. code-tab:: gdscript
|
|
|
+
|
|
|
+ var fruits = ["Apple", "Orange", "Pear", "Kiwi"]
|
|
|
+
|
|
|
+ print(", ".join(fruits)) # Prints "Apple, Orange, Pear, Kiwi"
|
|
|
+ print("---".join(fruits)) # Prints "Apple---Orange---Pear---Kiwi"
|
|
|
+
|
|
|
+ .. code-tab:: csharp
|
|
|
+
|
|
|
+ var fruits = new string[] {"Apple", "Orange", "Pear", "Kiwi"};
|
|
|
+
|
|
|
+ // In C#, this method is static.
|
|
|
+ GD.Print(string.Join(", ", fruits); // Prints "Apple, Orange, Pear, Kiwi"
|
|
|
+ GD.Print(string.Join("---", fruits)); // Prints "Apple---Orange---Pear---Kiwi"
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_json_escape:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **json_escape** **(** **)** |const|
|
|
|
+
|
|
|
+Returns a copy of the string with special characters escaped using the JSON standard. Because it closely matches the C standard, it is possible to use :ref:`c_unescape<class_StringName_method_c_unescape>` to unescape the string, if necessary.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_left:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **left** **(** :ref:`int<class_int>` length **)** |const|
|
|
|
+
|
|
|
+Returns the first ``length`` characters from the beginning of the string. If ``length`` is negative, strips the last ``length`` characters from the string's end.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ print("Hello World!".left(3)) # Prints "Hel"
|
|
|
+ print("Hello World!".left(-4)) # Prints "Hello Wo"
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_length:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **length** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the number of characters in the string. Empty strings (``""``) always return ``0``. See also :ref:`is_empty<class_StringName_method_is_empty>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_lpad:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **lpad** **(** :ref:`int<class_int>` min_length, :ref:`String<class_String>` character=" " **)** |const|
|
|
|
+
|
|
|
+Formats the string to be at least ``min_length`` long by adding ``character``\ s to the left of the string, if necessary. See also :ref:`rpad<class_StringName_method_rpad>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_lstrip:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **lstrip** **(** :ref:`String<class_String>` chars **)** |const|
|
|
|
+
|
|
|
+Removes a set of characters defined in ``chars`` from the string's beginning. See also :ref:`rstrip<class_StringName_method_rstrip>`.
|
|
|
+
|
|
|
+\ **Note:** ``chars`` is not a prefix. Use :ref:`trim_prefix<class_StringName_method_trim_prefix>` to remove a single prefix, rather than a set of characters.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_match:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **match** **(** :ref:`String<class_String>` expr **)** |const|
|
|
|
+
|
|
|
+Does a simple expression match, where ``*`` matches zero or more arbitrary characters and ``?`` matches any single character except a period (``.``). An empty string or empty expression always evaluates to ``false``.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_matchn:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **matchn** **(** :ref:`String<class_String>` expr **)** |const|
|
|
|
+
|
|
|
+Does a simple **case-insensitive** expression match, where ``*`` matches zero or more arbitrary characters and ``?`` matches any single character except a period (``.``). An empty string or empty expression always evaluates to ``false``.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_md5_buffer:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`PackedByteArray<class_PackedByteArray>` **md5_buffer** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the `MD5 hash <https://en.wikipedia.org/wiki/MD5>`__ of the string as a :ref:`PackedByteArray<class_PackedByteArray>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_md5_text:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **md5_text** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the `MD5 hash <https://en.wikipedia.org/wiki/MD5>`__ of the string as another :ref:`String<class_String>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_naturalnocasecmp_to:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **naturalnocasecmp_to** **(** :ref:`String<class_String>` to **)** |const|
|
|
|
+
|
|
|
+Performs a **case-insensitive**, *natural order* comparison to another string. Returns ``-1`` if less than, ``1`` if greater than, or ``0`` if equal. "Less than" or "greater than" are determined by the `Unicode code points <https://en.wikipedia.org/wiki/List_of_Unicode_characters>`__ of each string, which roughly matches the alphabetical order. Internally, lowercase characters are converted to uppercase for the comparison.
|
|
|
+
|
|
|
+When used for sorting, natural order comparison orders sequences of numbers by the combined value of each digit as is often expected, instead of the single digit's value. A sorted sequence of numbered strings will be ``["1", "2", "3", ...]``, not ``["1", "10", "2", "3", ...]``.
|
|
|
+
|
|
|
+With different string lengths, returns ``1`` if this string is longer than the ``to`` string, or ``-1`` if shorter. Note that the length of empty strings is *always* ``0``.
|
|
|
+
|
|
|
+To get a :ref:`bool<class_bool>` result from a string comparison, use the ``==`` operator instead. See also :ref:`nocasecmp_to<class_StringName_method_nocasecmp_to>` and :ref:`casecmp_to<class_StringName_method_casecmp_to>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_nocasecmp_to:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **nocasecmp_to** **(** :ref:`String<class_String>` to **)** |const|
|
|
|
+
|
|
|
+Performs a **case-insensitive** comparison to another string. Returns ``-1`` if less than, ``1`` if greater than, or ``0`` if equal. "Less than" or "greater than" are determined by the `Unicode code points <https://en.wikipedia.org/wiki/List_of_Unicode_characters>`__ of each string, which roughly matches the alphabetical order. Internally, lowercase characters are converted to uppercase for the comparison.
|
|
|
+
|
|
|
+With different string lengths, returns ``1`` if this string is longer than the ``to`` string, or ``-1`` if shorter. Note that the length of empty strings is *always* ``0``.
|
|
|
+
|
|
|
+To get a :ref:`bool<class_bool>` result from a string comparison, use the ``==`` operator instead. See also :ref:`casecmp_to<class_StringName_method_casecmp_to>` and :ref:`naturalnocasecmp_to<class_StringName_method_naturalnocasecmp_to>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_pad_decimals:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **pad_decimals** **(** :ref:`int<class_int>` digits **)** |const|
|
|
|
+
|
|
|
+Formats the string representing a number to have an exact number of ``digits`` *after* the decimal point.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_pad_zeros:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **pad_zeros** **(** :ref:`int<class_int>` digits **)** |const|
|
|
|
+
|
|
|
+Formats the string representing a number to have an exact number of ``digits`` *before* the decimal point.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_path_join:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **path_join** **(** :ref:`String<class_String>` file **)** |const|
|
|
|
+
|
|
|
+Concatenates ``file`` at the end of the string as a subpath, adding ``/`` if necessary.
|
|
|
+
|
|
|
+\ **Example:** ``"this/is".path_join("path") == "this/is/path"``.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_repeat:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **repeat** **(** :ref:`int<class_int>` count **)** |const|
|
|
|
+
|
|
|
+Repeats this string a number of times. ``count`` needs to be greater than ``0``. Otherwise, returns an empty string.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_replace:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **replace** **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)** |const|
|
|
|
+
|
|
|
+Replaces all occurrences of ``what`` inside the string with the given ``forwhat``.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_replacen:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **replacen** **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)** |const|
|
|
|
+
|
|
|
+Replaces all **case-insensitive** occurrences of ``what`` inside the string with the given ``forwhat``.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_rfind:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **rfind** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-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 :ref:`find<class_StringName_method_find>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_rfindn:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **rfindn** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)** |const|
|
|
|
+
|
|
|
+Returns the index of the **last** **case-insensitive** occurrence of ``what`` in this string, or ``-1`` if there are none. The starting search index can be specified with ``from``, continuing to the beginning of the string. This method is the reverse of :ref:`findn<class_StringName_method_findn>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_right:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **right** **(** :ref:`int<class_int>` length **)** |const|
|
|
|
+
|
|
|
+Returns the last ``length`` characters from the end of the string. If ``length`` is negative, strips the first ``length`` characters from the string's beginning.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ print("Hello World!".right(3)) # Prints "ld!"
|
|
|
+ print("Hello World!".right(-4)) # Prints "o World!"
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_rpad:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **rpad** **(** :ref:`int<class_int>` min_length, :ref:`String<class_String>` character=" " **)** |const|
|
|
|
+
|
|
|
+Formats the string to be at least ``min_length`` long, by adding ``character``\ s to the right of the string, if necessary. See also :ref:`lpad<class_StringName_method_lpad>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_rsplit:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`PackedStringArray<class_PackedStringArray>` **rsplit** **(** :ref:`String<class_String>` delimiter="", :ref:`bool<class_bool>` allow_empty=true, :ref:`int<class_int>` maxsplit=0 **)** |const|
|
|
|
+
|
|
|
+Splits the string using a ``delimiter`` and returns an array of the substrings, starting from the end of the string. The splits in the returned array appear in the same order as the original string. If ``delimiter`` is an empty string, each substring will be a single character.
|
|
|
+
|
|
|
+If ``allow_empty`` is ``false``, empty strings between adjacent delimiters are excluded from the array.
|
|
|
+
|
|
|
+If ``maxsplit`` is greater than ``0``, the number of splits may not exceed ``maxsplit``. By default, the entire string is split, which is mostly identical to :ref:`split<class_StringName_method_split>`.
|
|
|
+
|
|
|
+\ **Example:**\
|
|
|
+
|
|
|
+
|
|
|
+.. tabs::
|
|
|
+
|
|
|
+ .. code-tab:: gdscript
|
|
|
+
|
|
|
+ var some_string = "One,Two,Three,Four"
|
|
|
+ var some_array = some_string.rsplit(",", true, 1)
|
|
|
+
|
|
|
+ print(some_array.size()) # Prints 2
|
|
|
+ print(some_array[0]) # Prints "One,Two,Three"
|
|
|
+ print(some_array[1]) # Prints "Four"
|
|
|
+
|
|
|
+ .. code-tab:: csharp
|
|
|
+
|
|
|
+ // In C#, there is no String.RSplit() method.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_rstrip:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **rstrip** **(** :ref:`String<class_String>` chars **)** |const|
|
|
|
+
|
|
|
+Removes a set of characters defined in ``chars`` from the string's end. See also :ref:`lstrip<class_StringName_method_lstrip>`.
|
|
|
+
|
|
|
+\ **Note:** ``chars`` is not a suffix. Use :ref:`trim_suffix<class_StringName_method_trim_suffix>` to remove a single suffix, rather than a set of characters.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_sha1_buffer:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`PackedByteArray<class_PackedByteArray>` **sha1_buffer** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the `SHA-1 <https://en.wikipedia.org/wiki/SHA-1>`__ hash of the string as a :ref:`PackedByteArray<class_PackedByteArray>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_sha1_text:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **sha1_text** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the `SHA-1 <https://en.wikipedia.org/wiki/SHA-1>`__ hash of the string as another :ref:`String<class_String>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_sha256_buffer:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`PackedByteArray<class_PackedByteArray>` **sha256_buffer** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the `SHA-256 <https://en.wikipedia.org/wiki/SHA-2>`__ hash of the string as a :ref:`PackedByteArray<class_PackedByteArray>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_sha256_text:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **sha256_text** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the `SHA-256 <https://en.wikipedia.org/wiki/SHA-2>`__ hash of the string as another :ref:`String<class_String>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_similarity:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`float<class_float>` **similarity** **(** :ref:`String<class_String>` text **)** |const|
|
|
|
+
|
|
|
+Returns the similarity index (`Sorensen-Dice coefficient <https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient>`__) of this string compared to another. A result of ``1.0`` means totally similar, while ``0.0`` means totally dissimilar.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ print("ABC123".similarity("ABC123")) # Prints 1.0
|
|
|
+ print("ABC123".similarity("XYZ456")) # Prints 0.0
|
|
|
+ print("ABC123".similarity("123ABC")) # Prints 0.8
|
|
|
+ print("ABC123".similarity("abc123")) # Prints 0.4
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_simplify_path:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **simplify_path** **(** **)** |const|
|
|
|
+
|
|
|
+If the string is a valid file path, converts the string into a canonical path. This is the shortest possible path, without ``"./"``, and all the unnecessary ``".."`` and ``"/"``.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ var simple_path = "./path/to///../file".simplify_path()
|
|
|
+ print(simple_path) # Prints "path/file"
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_split:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`PackedStringArray<class_PackedStringArray>` **split** **(** :ref:`String<class_String>` delimiter="", :ref:`bool<class_bool>` allow_empty=true, :ref:`int<class_int>` maxsplit=0 **)** |const|
|
|
|
+
|
|
|
+Splits the string using a ``delimiter`` and returns an array of the substrings. If ``delimiter`` is an empty string, each substring will be a single character. This method is the opposite of :ref:`join<class_StringName_method_join>`.
|
|
|
+
|
|
|
+If ``allow_empty`` is ``false``, empty strings between adjacent delimiters are excluded from the array.
|
|
|
+
|
|
|
+If ``maxsplit`` is greater than ``0``, the number of splits may not exceed ``maxsplit``. By default, the entire string is split.
|
|
|
+
|
|
|
+\ **Example:**\
|
|
|
+
|
|
|
+
|
|
|
+.. tabs::
|
|
|
+
|
|
|
+ .. code-tab:: gdscript
|
|
|
+
|
|
|
+ var some_array = "One,Two,Three,Four".split(",", true, 2)
|
|
|
+
|
|
|
+ print(some_array.size()) # Prints 3
|
|
|
+ print(some_array[0]) # Prints "One"
|
|
|
+ print(some_array[1]) # Prints "Two"
|
|
|
+ print(some_array[2]) # Prints "Three,Four"
|
|
|
+
|
|
|
+ .. code-tab:: csharp
|
|
|
+
|
|
|
+ // C#'s `Split()` does not support the `maxsplit` parameter.
|
|
|
+ var someArray = "One,Two,Three".Split(",");
|
|
|
+
|
|
|
+ GD.Print(someArray[0]); // Prints "One"
|
|
|
+ GD.Print(someArray[1]); // Prints "Two"
|
|
|
+ GD.Print(someArray[2]); // Prints "Three"
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+\ **Note:** If you only need one substring from the array, consider using :ref:`get_slice<class_StringName_method_get_slice>` which is faster. If you need to split strings with more complex rules, use the :ref:`RegEx<class_RegEx>` class instead.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_split_floats:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`PackedFloat64Array<class_PackedFloat64Array>` **split_floats** **(** :ref:`String<class_String>` delimiter, :ref:`bool<class_bool>` allow_empty=true **)** |const|
|
|
|
+
|
|
|
+Splits the string into floats by using a ``delimiter`` and returns a :ref:`PackedFloat64Array<class_PackedFloat64Array>`.
|
|
|
+
|
|
|
+If ``allow_empty`` is ``false``, empty or invalid :ref:`float<class_float>` conversions between adjacent delimiters are excluded.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ var a = "1,2,4.5".split_floats(",") # a is [1.0, 2.0, 4.5]
|
|
|
+ var c = "1| ||4.5".split_floats("|") # c is [1.0, 0.0, 0.0, 4.5]
|
|
|
+ var b = "1| ||4.5".split_floats("|", false) # b is [1.0, 4.5]
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_strip_edges:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **strip_edges** **(** :ref:`bool<class_bool>` left=true, :ref:`bool<class_bool>` right=true **)** |const|
|
|
|
+
|
|
|
+Strips all non-printable characters from the beginning and the end of the string. These include spaces, tabulations (``\t``), and newlines (``\n`` ``\r``).
|
|
|
+
|
|
|
+If ``left`` is ``false``, ignores the string's beginning. Likewise, if ``right`` is ``false``, ignores the string's end.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_strip_escapes:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **strip_escapes** **(** **)** |const|
|
|
|
+
|
|
|
+Strips all escape characters from the string. These include all non-printable control characters of the first page of the ASCII table (values from 0 to 31), such as tabulation (``\t``) and newline (``\n``, ``\r``) characters, but *not* spaces.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_substr:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **substr** **(** :ref:`int<class_int>` from, :ref:`int<class_int>` len=-1 **)** |const|
|
|
|
+
|
|
|
+Returns part of the string from the position ``from`` with length ``len``. If ``len`` is ``-1`` (as by default), returns the rest of the string starting from the given position.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_ascii_buffer:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`PackedByteArray<class_PackedByteArray>` **to_ascii_buffer** **(** **)** |const|
|
|
|
+
|
|
|
+Converts the string to an `ASCII <https://en.wikipedia.org/wiki/ASCII>`__/Latin-1 encoded :ref:`PackedByteArray<class_PackedByteArray>`. This method is slightly faster than :ref:`to_utf8_buffer<class_StringName_method_to_utf8_buffer>`, but replaces all unsupported characters with spaces.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_camel_case:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **to_camel_case** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the string converted to ``camelCase``.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_float:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`float<class_float>` **to_float** **(** **)** |const|
|
|
|
+
|
|
|
+Converts the string representing a decimal number into a :ref:`float<class_float>`. This method stops on the first non-number character, except the first decimal point (``.``) and the exponent letter (``e``). See also :ref:`is_valid_float<class_StringName_method_is_valid_float>`.
|
|
|
+
|
|
|
+::
|
|
|
+
|
|
|
+ var a = "12.35".to_float() # a is 12.35
|
|
|
+ var b = "1.2.3".to_float() # b is 1.2
|
|
|
+ var c = "12xy3".to_float() # c is 12.0
|
|
|
+ var d = "1e3".to_float() # d is 1000.0
|
|
|
+ var e = "Hello!".to_int() # e is 0.0
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_int:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **to_int** **(** **)** |const|
|
|
|
+
|
|
|
+Converts the string representing an integer number into an :ref:`int<class_int>`. This method removes any non-number character and stops at the first decimal point (``.``). See also :ref:`is_valid_int<class_StringName_method_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
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_lower:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **to_lower** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the string converted to lowercase.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_pascal_case:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **to_pascal_case** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the string converted to ``PascalCase``.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_snake_case:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **to_snake_case** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the string converted to ``snake_case``.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_upper:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **to_upper** **(** **)** |const|
|
|
|
+
|
|
|
+Returns the string converted to uppercase.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_utf16_buffer:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`PackedByteArray<class_PackedByteArray>` **to_utf16_buffer** **(** **)** |const|
|
|
|
+
|
|
|
+Converts the string to a `UTF-16 <https://en.wikipedia.org/wiki/UTF-16>`__ encoded :ref:`PackedByteArray<class_PackedByteArray>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_utf32_buffer:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`PackedByteArray<class_PackedByteArray>` **to_utf32_buffer** **(** **)** |const|
|
|
|
+
|
|
|
+Converts the string to a `UTF-32 <https://en.wikipedia.org/wiki/UTF-32>`__ encoded :ref:`PackedByteArray<class_PackedByteArray>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_to_utf8_buffer:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`PackedByteArray<class_PackedByteArray>` **to_utf8_buffer** **(** **)** |const|
|
|
|
+
|
|
|
+Converts the string to a `UTF-8 <https://en.wikipedia.org/wiki/UTF-8>`__ encoded :ref:`PackedByteArray<class_PackedByteArray>`. This method is slightly slower than :ref:`to_ascii_buffer<class_StringName_method_to_ascii_buffer>`, but supports all UTF-8 characters. For most cases, prefer using this method.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_trim_prefix:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **trim_prefix** **(** :ref:`String<class_String>` prefix **)** |const|
|
|
|
+
|
|
|
+Removes the given ``prefix`` from the start of the string, or returns the string unchanged.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_trim_suffix:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **trim_suffix** **(** :ref:`String<class_String>` suffix **)** |const|
|
|
|
+
|
|
|
+Removes the given ``suffix`` from the end of the string, or returns the string unchanged.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_unicode_at:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`int<class_int>` **unicode_at** **(** :ref:`int<class_int>` at **)** |const|
|
|
|
+
|
|
|
+Returns the character code at position ``at``.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_uri_decode:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **uri_decode** **(** **)** |const|
|
|
|
+
|
|
|
+Decodes the string from its URL-encoded format. This method is meant to properly decode the parameters in a URL when receiving an HTTP request.
|
|
|
+
|
|
|
+
|
|
|
+.. tabs::
|
|
|
+
|
|
|
+ .. code-tab:: gdscript
|
|
|
+
|
|
|
+ var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
|
|
|
+ print(url.uri_decode()) # Prints "$DOCS_URL/?highlight=Godot Engine:docs"
|
|
|
+
|
|
|
+ .. code-tab:: csharp
|
|
|
+
|
|
|
+ var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
|
|
|
+ GD.Print(url.URIDecode()) // Prints "$DOCS_URL/?highlight=Godot Engine:docs"
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_uri_encode:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **uri_encode** **(** **)** |const|
|
|
|
+
|
|
|
+Encodes the string to URL-friendly format. This method is meant to properly encode the parameters in a URL when sending an HTTP request.
|
|
|
+
|
|
|
+
|
|
|
+.. tabs::
|
|
|
+
|
|
|
+ .. code-tab:: gdscript
|
|
|
+
|
|
|
+ var prefix = "$DOCS_URL/?highlight="
|
|
|
+ var url = prefix + "Godot Engine:docs".uri_encode()
|
|
|
+
|
|
|
+ print(url) # Prints "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
|
|
|
+
|
|
|
+ .. code-tab:: csharp
|
|
|
+
|
|
|
+ var prefix = "$DOCS_URL/?highlight=";
|
|
|
+ var url = prefix + "Godot Engine:docs".URIEncode();
|
|
|
+
|
|
|
+ GD.Print(url); // Prints "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_validate_node_name:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **validate_node_name** **(** **)** |const|
|
|
|
+
|
|
|
+Removes all characters that are not allowed in :ref:`Node.name<class_Node_property_name>` from the string (``.`` ``:`` ``@`` ``/`` ``"`` ``%``).
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_xml_escape:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **xml_escape** **(** :ref:`bool<class_bool>` escape_quotes=false **)** |const|
|
|
|
+
|
|
|
+Returns a copy of the string with special characters escaped using the XML standard. If ``escape_quotes`` is ``true``, the single quote (``'``) and double quote (``"``) characters are also escaped.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_method_xml_unescape:
|
|
|
+
|
|
|
+.. rst-class:: classref-method
|
|
|
+
|
|
|
+:ref:`String<class_String>` **xml_unescape** **(** **)** |const|
|
|
|
+
|
|
|
+Returns a copy of the string with escaped characters replaced by their meanings according to the XML standard.
|
|
|
+
|
|
|
+.. rst-class:: classref-section-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. rst-class:: classref-descriptions-group
|
|
|
+
|
|
|
+Operator Descriptions
|
|
|
+---------------------
|
|
|
+
|
|
|
+.. _class_StringName_operator_neq_String:
|
|
|
+
|
|
|
+.. rst-class:: classref-operator
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **operator !=** **(** :ref:`String<class_String>` right **)**
|
|
|
+
|
|
|
+Returns ``true`` if this **StringName** is not equivalent to the given :ref:`String<class_String>`.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_operator_neq_StringName:
|
|
|
+
|
|
|
+.. rst-class:: classref-operator
|
|
|
+
|
|
|
+:ref:`bool<class_bool>` **operator !=** **(** :ref:`StringName<class_StringName>` right **)**
|
|
|
+
|
|
|
+Returns ``true`` if the **StringName** and ``right`` do not refer to the same name. Comparisons between **StringName**\ s are much faster than regular :ref:`String<class_String>` comparisons.
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_operator_mod_Variant:
|
|
|
+
|
|
|
+.. rst-class:: classref-operator
|
|
|
+
|
|
|
+:ref:`String<class_String>` **operator %** **(** :ref:`Variant<class_Variant>` right **)**
|
|
|
+
|
|
|
+.. container:: contribute
|
|
|
+
|
|
|
+ There is currently no description for this operator. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_operator_sum_String:
|
|
|
+
|
|
|
+.. rst-class:: classref-operator
|
|
|
+
|
|
|
+:ref:`String<class_String>` **operator +** **(** :ref:`String<class_String>` right **)**
|
|
|
+
|
|
|
+.. container:: contribute
|
|
|
+
|
|
|
+ There is currently no description for this operator. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
|
|
|
+
|
|
|
+.. rst-class:: classref-item-separator
|
|
|
+
|
|
|
+----
|
|
|
+
|
|
|
+.. _class_StringName_operator_sum_StringName:
|
|
|
+
|
|
|
+.. rst-class:: classref-operator
|
|
|
+
|
|
|
+:ref:`String<class_String>` **operator +** **(** :ref:`StringName<class_StringName>` right **)**
|
|
|
+
|
|
|
+.. container:: contribute
|
|
|
+
|
|
|
+ There is currently no description for this operator. Please help us by :ref:`contributing one <doc_updating_the_class_reference>`!
|
|
|
|
|
|
.. rst-class:: classref-item-separator
|
|
|
|