mirror of
https://github.com/godotengine/godot-docs-l10n.git
synced 2026-01-04 10:09:56 +03:00
2233 lines
117 KiB
ReStructuredText
2233 lines
117 KiB
ReStructuredText
:github_url: hide
|
||
|
||
.. DO NOT EDIT THIS FILE!!!
|
||
.. Generated automatically from Godot engine sources.
|
||
.. Generator: https://github.com/godotengine/godot/tree/4.2/doc/tools/make_rst.py.
|
||
.. XML source: https://github.com/godotengine/godot/tree/4.2/doc/classes/String.xml.
|
||
|
||
.. _class_String:
|
||
|
||
String
|
||
======
|
||
|
||
字符串内置类型。
|
||
|
||
.. rst-class:: classref-introduction-group
|
||
|
||
描述
|
||
----
|
||
|
||
这是内置的字符串 Variant 类型(GDScript 使用的就是这个类型)。字符串中可以包含任意数量的 Unicode 字符,暴露的方法可用于字符串的操作和生成。字符串有引用计数,使用写时复制技术(每次对字符串的修改都会返回新的 **String**\ ),所以传递字符串的资源损耗很小。
|
||
|
||
部分字符串方法有对应的变体。后缀 ``n`` 的变体(\ :ref:`countn<class_String_method_countn>`\ 、\ :ref:`findn<class_String_method_findn>`\ 、\ :ref:`replacen<class_String_method_replacen>` 等)\ **大小写不敏感**\ (不区分大写字符和小写字符)。前缀 ``r`` 的方法变体(\ :ref:`rfind<class_String_method_rfind>`\ 、\ :ref:`rsplit<class_String_method_rsplit>` 等)是逆序的,会从字符串末尾开始,而不是从开头开始。
|
||
|
||
\ **注意:**\ 在布尔语境下,空字符串(\ ``""``\ )的求值结果为 ``false``\ 。否则字符串的求值结果始终为 ``true``\ 。无法使用 ``not`` 运算符。检查空字符串请使用 :ref:`is_empty<class_String_method_is_empty>`\ 。
|
||
|
||
.. note::
|
||
|
||
通过 C# 使用这个 API 时有显著的不同。详见 :ref:`doc_c_sharp_differences`\ 。
|
||
|
||
.. rst-class:: classref-introduction-group
|
||
|
||
教程
|
||
----
|
||
|
||
- :doc:`GDScript 格式字符串 <../tutorials/scripting/gdscript/gdscript_format_string>`
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
构造函数
|
||
--------
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+-----------------------------+-----------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`String<class_String_constructor_String>` **(** **)** |
|
||
+-----------------------------+-----------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`String<class_String_constructor_String>` **(** :ref:`String<class_String>` from **)** |
|
||
+-----------------------------+-----------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`String<class_String_constructor_String>` **(** :ref:`NodePath<class_NodePath>` from **)** |
|
||
+-----------------------------+-----------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`String<class_String_constructor_String>` **(** :ref:`StringName<class_StringName>` from **)** |
|
||
+-----------------------------+-----------------------------------------------------------------------------------------------------+
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
方法
|
||
----
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`begins_with<class_String_method_begins_with>` **(** :ref:`String<class_String>` text **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`bigrams<class_String_method_bigrams>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`bin_to_int<class_String_method_bin_to_int>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`c_escape<class_String_method_c_escape>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`c_unescape<class_String_method_c_unescape>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`capitalize<class_String_method_capitalize>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`casecmp_to<class_String_method_casecmp_to>` **(** :ref:`String<class_String>` to **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`chr<class_String_method_chr>` **(** :ref:`int<class_int>` char **)** |static| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`contains<class_String_method_contains>` **(** :ref:`String<class_String>` what **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`count<class_String_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_String_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_String_method_dedent>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`ends_with<class_String_method_ends_with>` **(** :ref:`String<class_String>` text **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`erase<class_String_method_erase>` **(** :ref:`int<class_int>` position, :ref:`int<class_int>` chars=1 **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`find<class_String_method_find>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`findn<class_String_method_findn>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`format<class_String_method_format>` **(** :ref:`Variant<class_Variant>` values, :ref:`String<class_String>` placeholder="{_}" **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`get_base_dir<class_String_method_get_base_dir>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`get_basename<class_String_method_get_basename>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`get_extension<class_String_method_get_extension>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`get_file<class_String_method_get_file>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`get_slice<class_String_method_get_slice>` **(** :ref:`String<class_String>` delimiter, :ref:`int<class_int>` slice **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`get_slice_count<class_String_method_get_slice_count>` **(** :ref:`String<class_String>` delimiter **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`get_slicec<class_String_method_get_slicec>` **(** :ref:`int<class_int>` delimiter, :ref:`int<class_int>` slice **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`hash<class_String_method_hash>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`hex_decode<class_String_method_hex_decode>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`hex_to_int<class_String_method_hex_to_int>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`humanize_size<class_String_method_humanize_size>` **(** :ref:`int<class_int>` size **)** |static| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`indent<class_String_method_indent>` **(** :ref:`String<class_String>` prefix **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`insert<class_String_method_insert>` **(** :ref:`int<class_int>` position, :ref:`String<class_String>` what **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_absolute_path<class_String_method_is_absolute_path>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_empty<class_String_method_is_empty>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_relative_path<class_String_method_is_relative_path>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_subsequence_of<class_String_method_is_subsequence_of>` **(** :ref:`String<class_String>` text **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_subsequence_ofn<class_String_method_is_subsequence_ofn>` **(** :ref:`String<class_String>` text **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_valid_filename<class_String_method_is_valid_filename>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_valid_float<class_String_method_is_valid_float>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_valid_hex_number<class_String_method_is_valid_hex_number>` **(** :ref:`bool<class_bool>` with_prefix=false **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_valid_html_color<class_String_method_is_valid_html_color>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_valid_identifier<class_String_method_is_valid_identifier>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_valid_int<class_String_method_is_valid_int>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_valid_ip_address<class_String_method_is_valid_ip_address>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`join<class_String_method_join>` **(** :ref:`PackedStringArray<class_PackedStringArray>` parts **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`json_escape<class_String_method_json_escape>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`left<class_String_method_left>` **(** :ref:`int<class_int>` length **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`length<class_String_method_length>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`lpad<class_String_method_lpad>` **(** :ref:`int<class_int>` min_length, :ref:`String<class_String>` character=" " **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`lstrip<class_String_method_lstrip>` **(** :ref:`String<class_String>` chars **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`match<class_String_method_match>` **(** :ref:`String<class_String>` expr **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`matchn<class_String_method_matchn>` **(** :ref:`String<class_String>` expr **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`md5_buffer<class_String_method_md5_buffer>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`md5_text<class_String_method_md5_text>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`naturalcasecmp_to<class_String_method_naturalcasecmp_to>` **(** :ref:`String<class_String>` to **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`naturalnocasecmp_to<class_String_method_naturalnocasecmp_to>` **(** :ref:`String<class_String>` to **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`nocasecmp_to<class_String_method_nocasecmp_to>` **(** :ref:`String<class_String>` to **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`num<class_String_method_num>` **(** :ref:`float<class_float>` number, :ref:`int<class_int>` decimals=-1 **)** |static| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`num_int64<class_String_method_num_int64>` **(** :ref:`int<class_int>` number, :ref:`int<class_int>` base=10, :ref:`bool<class_bool>` capitalize_hex=false **)** |static| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`num_scientific<class_String_method_num_scientific>` **(** :ref:`float<class_float>` number **)** |static| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`num_uint64<class_String_method_num_uint64>` **(** :ref:`int<class_int>` number, :ref:`int<class_int>` base=10, :ref:`bool<class_bool>` capitalize_hex=false **)** |static| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`pad_decimals<class_String_method_pad_decimals>` **(** :ref:`int<class_int>` digits **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`pad_zeros<class_String_method_pad_zeros>` **(** :ref:`int<class_int>` digits **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`path_join<class_String_method_path_join>` **(** :ref:`String<class_String>` file **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`repeat<class_String_method_repeat>` **(** :ref:`int<class_int>` count **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`replace<class_String_method_replace>` **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`replacen<class_String_method_replacen>` **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`reverse<class_String_method_reverse>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`rfind<class_String_method_rfind>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`rfindn<class_String_method_rfindn>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`right<class_String_method_right>` **(** :ref:`int<class_int>` length **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`rpad<class_String_method_rpad>` **(** :ref:`int<class_int>` min_length, :ref:`String<class_String>` character=" " **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`rsplit<class_String_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_String_method_rstrip>` **(** :ref:`String<class_String>` chars **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`sha1_buffer<class_String_method_sha1_buffer>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`sha1_text<class_String_method_sha1_text>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`sha256_buffer<class_String_method_sha256_buffer>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`sha256_text<class_String_method_sha256_text>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`float<class_float>` | :ref:`similarity<class_String_method_similarity>` **(** :ref:`String<class_String>` text **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`simplify_path<class_String_method_simplify_path>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedStringArray<class_PackedStringArray>` | :ref:`split<class_String_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_String_method_split_floats>` **(** :ref:`String<class_String>` delimiter, :ref:`bool<class_bool>` allow_empty=true **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`strip_edges<class_String_method_strip_edges>` **(** :ref:`bool<class_bool>` left=true, :ref:`bool<class_bool>` right=true **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`strip_escapes<class_String_method_strip_escapes>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`substr<class_String_method_substr>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` len=-1 **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`to_ascii_buffer<class_String_method_to_ascii_buffer>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`to_camel_case<class_String_method_to_camel_case>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`float<class_float>` | :ref:`to_float<class_String_method_to_float>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`to_int<class_String_method_to_int>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`to_lower<class_String_method_to_lower>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`to_pascal_case<class_String_method_to_pascal_case>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`to_snake_case<class_String_method_to_snake_case>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`to_upper<class_String_method_to_upper>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`to_utf8_buffer<class_String_method_to_utf8_buffer>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`to_utf16_buffer<class_String_method_to_utf16_buffer>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`to_utf32_buffer<class_String_method_to_utf32_buffer>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`to_wchar_buffer<class_String_method_to_wchar_buffer>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`trim_prefix<class_String_method_trim_prefix>` **(** :ref:`String<class_String>` prefix **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`trim_suffix<class_String_method_trim_suffix>` **(** :ref:`String<class_String>` suffix **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`unicode_at<class_String_method_unicode_at>` **(** :ref:`int<class_int>` at **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`uri_decode<class_String_method_uri_decode>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`uri_encode<class_String_method_uri_encode>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`validate_filename<class_String_method_validate_filename>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`validate_node_name<class_String_method_validate_node_name>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`xml_escape<class_String_method_xml_escape>` **(** :ref:`bool<class_bool>` escape_quotes=false **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`xml_unescape<class_String_method_xml_unescape>` **(** **)** |const| |
|
||
+-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
操作符
|
||
------
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator !=<class_String_operator_neq_String>` **(** :ref:`String<class_String>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator !=<class_String_operator_neq_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`operator %<class_String_operator_mod_Variant>` **(** :ref:`Variant<class_Variant>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`operator +<class_String_operator_sum_String>` **(** :ref:`String<class_String>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`operator +<class_String_operator_sum_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator \<<class_String_operator_lt_String>` **(** :ref:`String<class_String>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator \<=<class_String_operator_lte_String>` **(** :ref:`String<class_String>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator ==<class_String_operator_eq_String>` **(** :ref:`String<class_String>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator ==<class_String_operator_eq_StringName>` **(** :ref:`StringName<class_StringName>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator ><class_String_operator_gt_String>` **(** :ref:`String<class_String>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`operator >=<class_String_operator_gte_String>` **(** :ref:`String<class_String>` right **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`String<class_String>` | :ref:`operator []<class_String_operator_idx_int>` **(** :ref:`int<class_int>` index **)** |
|
||
+-----------------------------+----------------------------------------------------------------------------------------------------------------+
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
构造函数说明
|
||
------------
|
||
|
||
.. _class_String_constructor_String:
|
||
|
||
.. rst-class:: classref-constructor
|
||
|
||
:ref:`String<class_String>` **String** **(** **)**
|
||
|
||
构造空的 **String**\ (\ ``""``\ )。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-constructor
|
||
|
||
:ref:`String<class_String>` **String** **(** :ref:`String<class_String>` from **)**
|
||
|
||
构造给定 **String** 的副本。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-constructor
|
||
|
||
:ref:`String<class_String>` **String** **(** :ref:`NodePath<class_NodePath>` from **)**
|
||
|
||
从给定的 :ref:`NodePath<class_NodePath>` 构造新的 **String**\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-constructor
|
||
|
||
:ref:`String<class_String>` **String** **(** :ref:`StringName<class_StringName>` from **)**
|
||
|
||
从给定的 :ref:`StringName<class_StringName>` 构造新 **String**\ 。
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
方法说明
|
||
--------
|
||
|
||
.. _class_String_method_begins_with:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **begins_with** **(** :ref:`String<class_String>` text **)** |const|
|
||
|
||
如果该字符串以给定的 ``text`` 开始,则返回 ``true``\ 。另见 :ref:`ends_with<class_String_method_ends_with>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_bigrams:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedStringArray<class_PackedStringArray>` **bigrams** **(** **)** |const|
|
||
|
||
返回包含该字符串的双字母组(连续字母的组合)的数组。
|
||
|
||
::
|
||
|
||
print("Get up!".bigrams()) # 输出 ["Ge", "et", "t ", " u", "up", "p!"]
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_bin_to_int:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **bin_to_int** **(** **)** |const|
|
||
|
||
将表示二进制数的字符串转换为 :ref:`int<class_int>`\ 。该字符串可以前缀 ``"0b"``\ ,负数可以前缀 ``-``\ 。
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
print("101".bin_to_int()) # 输出 5
|
||
print("0b101".bin_to_int()) # 输出 5
|
||
print("-0b10".bin_to_int()) # 输出 -2
|
||
|
||
.. code-tab:: csharp
|
||
|
||
GD.Print("101".BinToInt()); // 输出 5
|
||
GD.Print("0b101".BinToInt()); // 输出 5
|
||
GD.Print("-0b10".BinToInt()); // 输出 -2
|
||
|
||
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_c_escape:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **c_escape** **(** **)** |const|
|
||
|
||
返回该字符串的副本,按照 C 语言标准对特殊字符进行转义。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_c_unescape:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **c_unescape** **(** **)** |const|
|
||
|
||
返回该字符串的副本,转义字符均使用本义代替。支持的转义序列有 ``\'``\ 、\ ``\"``\ 、\ ``\\``\ 、\ ``\a``\ 、\ ``\b``\ 、\ ``\f``\ 、\ ``\n``\ 、\ ``\r``\ 、\ ``\t``\ 、\ ``\v``\ 。
|
||
|
||
\ **注意:**\ 与 GDScript 解析器不同,这个方法不支持 ``\uXXXX`` 转义序列。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_capitalize:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **capitalize** **(** **)** |const|
|
||
|
||
改变字符串的外观:用空格代替下划线(\ ``_``\ ),在单词中间的大写字母前添加空格,将所有字母转换为小写,然后将第一个字母和空格后的每个字母转换为大写。
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
"move_local_x".capitalize() # 返回 "Move Local X"
|
||
"sceneFile_path".capitalize() # 返回 "Scene File Path"
|
||
|
||
.. code-tab:: csharp
|
||
|
||
"move_local_x".Capitalize(); // 返回 "Move Local X"
|
||
"sceneFile_path".Capitalize(); // 返回 "Scene File Path"
|
||
|
||
|
||
|
||
\ **注意:**\ 这个方法与检查器面板中属性的默认外观不一样,不会像你期望的那样将首字母缩写大写(\ ``"2D"``\ 、\ ``"FPS"``\ 、\ ``"PNG"`` 等)。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_casecmp_to:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **casecmp_to** **(** :ref:`String<class_String>` to **)** |const|
|
||
|
||
与另一个字符串进行比较,区分大小写。小于时返回 ``-1``\ 、大于时返回 ``1``\ 、等于时返回 ``0``\ 。“小于”和“大于”比较的是字符串中的 `Unicode 码位 <https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8>`__\ ,大致与字母表顺序一致。
|
||
|
||
如果字符串长度不同,这个字符串比 ``to`` 字符串长时返回 ``1``\ ,短时返回 ``-1``\ 。请注意空字符串的长度\ *始终*\ 为 ``0``\ 。
|
||
|
||
如果想在比较字符串时获得 :ref:`bool<class_bool>` 返回值,请改用 ``==`` 运算符。另见 :ref:`nocasecmp_to<class_String_method_nocasecmp_to>`\ 、\ :ref:`naturalcasecmp_to<class_String_method_naturalcasecmp_to>` 和 :ref:`naturalnocasecmp_to<class_String_method_naturalnocasecmp_to>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_chr:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **chr** **(** :ref:`int<class_int>` char **)** |static|
|
||
|
||
根据十进制数 ``char`` 返回单一 Unicode 字符。你可以用 `unicodelookup.com <https://unicodelookup.com/>`__ 和 `unicode.org <https://www.unicode.org/charts/>`__ 作为参考。
|
||
|
||
::
|
||
|
||
print(String.chr(65)) # 输出 "A"
|
||
print(String.chr(129302)) # 输出 "🤖"(机器人脸 Emoji)
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_contains:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **contains** **(** :ref:`String<class_String>` what **)** |const|
|
||
|
||
如果该字符串包含 ``what``\ ,则返回 ``true``\ 。在 GDScript 中对应 ``in`` 运算符。
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
print("Node".contains("de")) # 输出 true
|
||
print("team".contains("I")) # 输出 false
|
||
print("I" in "team") # 输出 false
|
||
|
||
.. code-tab:: csharp
|
||
|
||
GD.Print("Node".Contains("de")); // 输出 true
|
||
GD.Print("team".Contains("I")); // 输出 false
|
||
|
||
|
||
|
||
如果想要知道 ``what`` 在该字符串中的位置,请使用 :ref:`find<class_String_method_find>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_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|
|
||
|
||
返回子串 ``what`` 在 ``from`` 和 ``to`` 位置之间出现的次数。如果 ``to`` 为 0,会在剩余字符串中继续搜索。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_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|
|
||
|
||
返回子串 ``what`` 在 ``from`` 和 ``to`` 位置之间出现的次数,\ **忽略大小写**\ 。如果 ``to`` 为 0,会在剩余字符串中继续搜索。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_dedent:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **dedent** **(** **)** |const|
|
||
|
||
返回删除了缩进(前导制表符和空格)的字符串副本。添加缩进请参阅 :ref:`indent<class_String_method_indent>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_ends_with:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **ends_with** **(** :ref:`String<class_String>` text **)** |const|
|
||
|
||
如果该字符串以给定的 ``text`` 结束,则返回 ``true``\ 。另见 :ref:`begins_with<class_String_method_begins_with>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_erase:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **erase** **(** :ref:`int<class_int>` position, :ref:`int<class_int>` chars=1 **)** |const|
|
||
|
||
返回从 ``position`` 开始擦除 ``chars`` 个字符后的字符串。如果在指定 ``position`` 的基础上 ``chars`` 超过字符串的长度,返回的字符串中擦除的字符数会少于请求的数量。如果 ``position`` 或 ``chars`` 为负数,则返回空字符串。如果 ``chars`` 为 ``0`` 则返回原字符串,不进行修改。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_find:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **find** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)** |const|
|
||
|
||
返回 ``what`` 在该字符串中\ **第一次**\ 出现的索引,如果不存在则返回 ``-1``\ 。搜索的起点可以用 ``from`` 指定,持续到字符串结尾。
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
print("Team".find("I")) # 输出 -1
|
||
|
||
print("Potato".find("t")) # 输出 2
|
||
print("Potato".find("t", 3)) # 输出 4
|
||
print("Potato".find("t", 5)) # 输出 -1
|
||
|
||
.. code-tab:: csharp
|
||
|
||
GD.Print("Team".Find("I")); // 输出 -1
|
||
|
||
GD.Print("Potato".Find("t")); // 输出 2
|
||
GD.Print("Potato".Find("t", 3)); // 输出 4
|
||
GD.Print("Potato".Find("t", 5)); // 输出 -1
|
||
|
||
|
||
|
||
\ **注意:**\ 如果你只是想要知道该字符串中是否包含 ``what``\ ,请使用 :ref:`contains<class_String_method_contains>`\ 。在 GDScript 中,你还可以使用 ``in`` 运算符。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_findn:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **findn** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)** |const|
|
||
|
||
返回这个字符串中 ``what`` **首次**\ 出现的索引,\ **不区分大小写**\ ,不存在时则为 ``-1``\ 。搜索的起点可以用 ``from`` 指定,终点为该字符串的末尾。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_format:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **format** **(** :ref:`Variant<class_Variant>` values, :ref:`String<class_String>` placeholder="{_}" **)** |const|
|
||
|
||
通过将所有出现的 ``placeholder`` 替换为 ``values`` 的元素来格式化字符串。
|
||
|
||
\ ``values`` 可以是 :ref:`Dictionary<class_Dictionary>` 或 :ref:`Array<class_Array>`\ 。\ ``placeholder`` 中的任何下划线将被预先被替换为对应的键。数组元素使用它们的索引作为键。
|
||
|
||
::
|
||
|
||
# 输出:Waiting for Godot 是 Samuel Beckett 的戏剧,Godot 引擎由此得名。
|
||
var use_array_values = "Waiting for {0} 是 {1} 的戏剧,{0} 引擎由此得名。"
|
||
print(use_array_values.format(["Godot", "Samuel Beckett"]))
|
||
|
||
# 输出:第 42 号用户是 Godot。
|
||
print("第 {id} 号用户是 {name}。".format({"id": 42, "name": "Godot"}))
|
||
|
||
当 ``values`` 是 :ref:`Array<class_Array>` 时还会执行一些额外的处理。 如果 ``placeholder`` 不包含下划线,则 ``values`` 数组的元素将用于按顺序替换出现的占位符;如果 ``values`` 的元素是另一个 2 元素数组,则它将被解释为键值对。
|
||
|
||
::
|
||
|
||
# 输出:第 42 号用户是 Godot。
|
||
print("第 {} 号用户是 {}。".format([42, "Godot"], "{}"))
|
||
print("第 {id} 号用户是 {name}。".format([["id", 42], ["name", "Godot"]]))
|
||
|
||
另请参阅 :doc:`GDScript 格式化字符串 <../tutorials/scripting/gdscript/gdscript_format_string>`\ 教程。
|
||
|
||
\ **注意:**\ 在 C# 中推荐改为\ `使用“$”插入字符串 <https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated>`__\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_get_base_dir:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **get_base_dir** **(** **)** |const|
|
||
|
||
如果该字符串是有效的文件路径,则返回基础目录名称。
|
||
|
||
::
|
||
|
||
var dir_path = "/path/to/file.txt".get_base_dir() # dir_path 为 "/path/to"
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_get_basename:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **get_basename** **(** **)** |const|
|
||
|
||
如果该字符串是有效的文件路径,则返回完整文件路径,不包括扩展名。
|
||
|
||
::
|
||
|
||
var base = "/path/to/file.txt".get_basename() # base 为 "/path/to/file"
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_get_extension:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **get_extension** **(** **)** |const|
|
||
|
||
如果该字符串是有效的文件名或路径,则返回该文件的扩展名,不含开头的点号(\ ``.``\ )。否则返回空字符串。
|
||
|
||
::
|
||
|
||
var a = "/path/to/file.txt".get_extension() # a 为 "txt"
|
||
var b = "cool.txt".get_extension() # b 为 "txt"
|
||
var c = "cool.font.tres".get_extension() # c 为 "tres"
|
||
var d = ".pack1".get_extension() # d 为 "pack1"
|
||
|
||
var e = "file.txt.".get_extension() # e 为 ""
|
||
var f = "file.txt..".get_extension() # f 为 ""
|
||
var g = "txt".get_extension() # g 为 ""
|
||
var h = "".get_extension() # h 为 ""
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_get_file:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **get_file** **(** **)** |const|
|
||
|
||
如果该字符串是有效的文件路径,则返回文件名,包括扩展名。
|
||
|
||
::
|
||
|
||
var file = "/path/to/icon.png".get_file() # file 为 "icon.png"
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_get_slice:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **get_slice** **(** :ref:`String<class_String>` delimiter, :ref:`int<class_int>` slice **)** |const|
|
||
|
||
使用分隔符 ``delimiter`` 拆分该字符串,返回索引为 ``slice`` 的子串。如果字符串中不存在 ``delimiter`` 则返回原字符串。如果 ``slice`` 不存在则返回空字符串。
|
||
|
||
只需要一个子串时这个方法比 :ref:`split<class_String_method_split>` 快。
|
||
|
||
\ **示例:**\
|
||
|
||
::
|
||
|
||
print("i/am/example/hi".get_slice("/", 2)) # 输出 "example"
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_get_slice_count:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **get_slice_count** **(** :ref:`String<class_String>` delimiter **)** |const|
|
||
|
||
返回使用给定的分隔符 ``delimiter`` 拆分该字符串后切片的总数(见 :ref:`split<class_String_method_split>`\ )。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_get_slicec:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **get_slicec** **(** :ref:`int<class_int>` delimiter, :ref:`int<class_int>` slice **)** |const|
|
||
|
||
使用 Unicode 字符码分隔符 ``delimiter`` 拆分该字符串,返回索引为 ``slice`` 的子串。如果 ``slice`` 不存在则返回空字符串。
|
||
|
||
只需要一个子串时这个方法比 :ref:`split<class_String_method_split>` 快。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_hash:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **hash** **(** **)** |const|
|
||
|
||
返回代表该字符串内容的 32 位哈希值。
|
||
|
||
\ **注意:**\ 由于哈希碰撞的缘故,内容相同的字符串\ *不一定*\ 会得到相同的哈希值。而相对的是,哈希不同的字符串一定不同。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_hex_decode:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedByteArray<class_PackedByteArray>` **hex_decode** **(** **)** |const|
|
||
|
||
将十六进制字符串解码为 :ref:`PackedByteArray<class_PackedByteArray>`\ 。
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
var text = "hello world"
|
||
var encoded = text.to_utf8_buffer().hex_encode() # 输出 "68656c6c6f20776f726c64"
|
||
print(buf.hex_decode().get_string_from_utf8())
|
||
|
||
.. code-tab:: csharp
|
||
|
||
var text = "hello world";
|
||
var encoded = text.ToUtf8Buffer().HexEncode(); // 输出 "68656c6c6f20776f726c64"
|
||
GD.Print(buf.HexDecode().GetStringFromUtf8());
|
||
|
||
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_hex_to_int:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **hex_to_int** **(** **)** |const|
|
||
|
||
将表示十六进制数的字符串转换为 :ref:`int<class_int>`\ 。该字符串可以前缀 ``"0x"``\ ,负数可以前缀 ``-``\ 。
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
print("0xff".hex_to_int()) # 输出 255
|
||
print("ab".hex_to_int()) # 输出 171
|
||
|
||
.. code-tab:: csharp
|
||
|
||
GD.Print("0xff".HexToInt()); // 输出 255
|
||
GD.Print("ab".HexToInt()); // 输出 171
|
||
|
||
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_humanize_size:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **humanize_size** **(** :ref:`int<class_int>` size **)** |static|
|
||
|
||
将表示字节数的 ``size`` 转换为人类可读的形式。
|
||
|
||
结果使用 `IEC 词头 <https://zh.wikipedia.org/wiki/%E4%BA%8C%E9%80%B2%E4%BD%8D%E5%89%8D%E7%BD%AE%E8%A9%9E>`__\ ,结尾可能是 ``"B"``\ 、\ ``"KiB"``\ 、\ ``"MiB"``\ 、\ ``"GiB"``\ 、\ ``"TiB"``\ 、\ ``"PiB"`` 或 ``"EiB"``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_indent:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **indent** **(** :ref:`String<class_String>` prefix **)** |const|
|
||
|
||
使用前缀 ``prefix`` 将该字符串中的每一行进行缩进。空行不缩进。移除缩进请参阅 :ref:`dedent<class_String_method_dedent>`\ 。
|
||
|
||
例如,该字符串可以用 ``"\t\t"`` 缩进两个制表位,用 ``" "`` 缩进四个空格。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_insert:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **insert** **(** :ref:`int<class_int>` position, :ref:`String<class_String>` what **)** |const|
|
||
|
||
在该字符串中的 ``position`` 位置插入 ``what``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_absolute_path:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_absolute_path** **(** **)** |const|
|
||
|
||
如果该字符串为文件或目录的路径,并且显式指定了起点,则返回 ``true``\ 。这个方法与 :ref:`is_relative_path<class_String_method_is_relative_path>` 相反。
|
||
|
||
包括以 ``"res://"``\ 、\ ``"user://"``\ 、\ ``"C:\"``\ 、\ ``"/"`` 等开头的路径。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_empty:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_empty** **(** **)** |const|
|
||
|
||
如果该字符串的长度为 ``0``\ (\ ``""``\ ),则返回 ``true``\ 。另见 :ref:`length<class_String_method_length>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_relative_path:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_relative_path** **(** **)** |const|
|
||
|
||
如果该字符串为文件或目录的路径,并且起点依赖于上下文,则返回 ``true``\ 。路径可以是从当前目录开始,也可以是从当前 :ref:`Node<class_Node>` 开始(如果该字符串是从 :ref:`NodePath<class_NodePath>` 得到的),有时候也可以是使用了 ``"./"`` 前缀。这个方法与 :ref:`is_absolute_path<class_String_method_is_absolute_path>` 相反。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_subsequence_of:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_subsequence_of** **(** :ref:`String<class_String>` text **)** |const|
|
||
|
||
如果这个字符串中的所有字符都能在 ``text`` 中按照原始顺序找到,则返回 ``true``\ 。
|
||
|
||
::
|
||
|
||
var text = "Wow, incredible!"
|
||
|
||
print("inedible".is_subsequence_of(text)) # 输出 true
|
||
print("Word!".is_subsequence_of(text)) # 输出 true
|
||
print("Window".is_subsequence_of(text)) # 输出 false
|
||
print("".is_subsequence_of(text)) # 输出 true
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_subsequence_ofn:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_subsequence_ofn** **(** :ref:`String<class_String>` text **)** |const|
|
||
|
||
如果这个字符串中的所有字符都能在 ``text`` 中按照原始顺序找到,\ **忽略大小写**\ ,则返回 ``true``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_valid_filename:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_valid_filename** **(** **)** |const|
|
||
|
||
如果该字符串不包含文件名中不允许的字符,则返回 ``true``\ (不允许的字符有:\ ``:`` ``/`` ``\`` ``?`` ``*`` ``"`` ``|`` ``%`` ``<`` ``>``\ )。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_valid_float:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_valid_float** **(** **)** |const|
|
||
|
||
如果该字符串代表有效的浮点数,则返回 ``true``\ 。浮点数只能包含数字、一个小数点(\ ``.``\ )以及指数字符(\ ``e``\ )。还可以前缀正号(\ ``+``\ )或负号(\ ``-``\ )。有效的整数同时也是有效的浮点数(见 :ref:`is_valid_int<class_String_method_is_valid_int>`\ )。另见 :ref:`to_float<class_String_method_to_float>`\ 。
|
||
|
||
::
|
||
|
||
print("1.7".is_valid_float()) # 输出 true
|
||
print("24".is_valid_float()) # 输出 true
|
||
print("7e3".is_valid_float()) # 输出 true
|
||
print("Hello".is_valid_float()) # 输出 false
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_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|
|
||
|
||
如果该字符串代表有效的十六进制数,则返回 ``true``\ 。有效的十六进制数只能包含数字或字母 ``A`` 到 ``F``\ (大小写均可),还可以前缀正号(\ ``+``\ )或负号(\ ``-``\ )。
|
||
|
||
如果 ``with_prefix`` 为 ``true``\ ,则十六进制数需要有 ``"0x"`` 前缀才算有效。
|
||
|
||
::
|
||
|
||
print("A08E".is_valid_hex_number()) # 输出 true
|
||
print("-AbCdEf".is_valid_hex_number()) # 输出 true
|
||
print("2.5".is_valid_hex_number()) # 输出 false
|
||
|
||
print("0xDEADC0DE".is_valid_hex_number(true)) # 输出 true
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_valid_html_color:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_valid_html_color** **(** **)** |const|
|
||
|
||
如果该字符串是有效的十六进制 HTML 颜色标记,则返回 ``true``\ 。该字符串必须为 3 位、4 位、6 位或 8 位字符的十六进制值(见 :ref:`is_valid_hex_number<class_String_method_is_valid_hex_number>`\ ),也可以带有井号前缀(\ ``#``\ )。名称、\ ``hsl()`` 等其他 HTML 颜色标记法无效。另见 :ref:`Color.html<class_Color_method_html>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_valid_identifier:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_valid_identifier** **(** **)** |const|
|
||
|
||
如果该字符串为有效的标识符,则返回 ``true``\ 。有效的标识符仅可以包含字母、数字和下划线(\ ``_``\ ),第一个字符不能为数字。
|
||
|
||
::
|
||
|
||
print("node_2d".is_valid_identifier()) # 输出 true
|
||
print("TYPE_FLOAT".is_valid_identifier()) # 输出 true
|
||
print("1st_method".is_valid_identifier()) # 输出 false
|
||
print("MyMethod#2".is_valid_identifier()) # 输出 false
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_valid_int:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_valid_int** **(** **)** |const|
|
||
|
||
如果该字符串代表有效的整数,则返回 ``true``\ 。有效的整数仅可以包含数字,还可以前缀正号(\ ``+``\ )或负号(\ ``-``\ )。另见 :ref:`to_int<class_String_method_to_int>`\ 。
|
||
|
||
::
|
||
|
||
print("7".is_valid_int()) # 输出 true
|
||
print("1.65".is_valid_int()) # 输出 false
|
||
print("Hi".is_valid_int()) # 输出 false
|
||
print("+3".is_valid_int()) # 输出 true
|
||
print("-12".is_valid_int()) # 输出 true
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_is_valid_ip_address:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_valid_ip_address** **(** **)** |const|
|
||
|
||
如果该字符串表示格式正确的 IPv4 或 IPv6 地址,则返回 ``true``\ 。这个方法认为 ``0.0.0.0``\ 、\ ``"ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"`` 等\ `保留 IP 地址 <https://zh.wikipedia.org/wiki/%E4%BF%9D%E7%95%99IP%E5%9C%B0%E5%9D%80>`__\ 是有效的。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_join:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **join** **(** :ref:`PackedStringArray<class_PackedStringArray>` parts **)** |const|
|
||
|
||
返回将 ``parts`` 中的元素连接组成的字符串,元素间使用调用该方法的字符串进行分隔。该方法和 :ref:`split<class_String_method_split>` 相反。
|
||
|
||
\ **示例:**\
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
var fruits = ["Apple", "Orange", "Pear", "Kiwi"]
|
||
|
||
print(", ".join(fruits)) # 输出 "Apple, Orange, Pear, Kiwi"
|
||
print("---".join(fruits)) # 输出 "Apple---Orange---Pear---Kiwi"
|
||
|
||
.. code-tab:: csharp
|
||
|
||
var fruits = new string[] {"Apple", "Orange", "Pear", "Kiwi"};
|
||
|
||
// 这个方法在 C# 中是静态的。
|
||
GD.Print(string.Join(", ", fruits)); // 输出 "Apple, Orange, Pear, Kiwi"
|
||
GD.Print(string.Join("---", fruits)); // 输出 "Apple---Orange---Pear---Kiwi"
|
||
|
||
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_json_escape:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **json_escape** **(** **)** |const|
|
||
|
||
返回该字符串的副本,使用 JSON 标准对特殊字符进行转义。因为与 C 标准非常类似,所以需要时可以用 :ref:`c_unescape<class_String_method_c_unescape>` 取消转义。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_left:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **left** **(** :ref:`int<class_int>` length **)** |const|
|
||
|
||
返回该字符串开头的前 ``length`` 个字符。如果 ``length`` 为负,则会从该字符串的末尾剥离最后 ``length`` 个字符。
|
||
|
||
::
|
||
|
||
print("Hello World!".left(3)) # 输出 "Hel"
|
||
print("Hello World!".left(-4)) # 输出 "Hello Wo"
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_length:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **length** **(** **)** |const|
|
||
|
||
返回该字符串中的字符数。空字符串(\ ``""``\ )始终返回 ``0``\ 。另见 :ref:`is_empty<class_String_method_is_empty>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_lpad:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **lpad** **(** :ref:`int<class_int>` min_length, :ref:`String<class_String>` character=" " **)** |const|
|
||
|
||
必要时在该字符串的左侧添加若干 ``character`` 字符,使其长度至少为 ``min_length``\ 。另见 :ref:`rpad<class_String_method_rpad>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_lstrip:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **lstrip** **(** :ref:`String<class_String>` chars **)** |const|
|
||
|
||
从该字符串的开头移除 ``chars`` 中定义的字符。另见 :ref:`rstrip<class_String_method_rstrip>`\ 。
|
||
|
||
\ **注意:**\ ``chars`` 不是前缀。如果要移除前缀而不是一组字符,请使用 :ref:`trim_prefix<class_String_method_trim_prefix>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_match:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **match** **(** :ref:`String<class_String>` expr **)** |const|
|
||
|
||
进行简单的表达式匹配(也叫“通配”),\ ``*`` 匹配零个或多个任意字符,\ ``?`` 匹配除英文句号外的任意字符(\ ``.``\ )。使用空字符串或空表达式时始终为 ``false``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_matchn:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **matchn** **(** :ref:`String<class_String>` expr **)** |const|
|
||
|
||
进行简单的\ **大小写不敏感**\ 表达式匹配(也叫“通配”),\ ``*`` 匹配零个或多个任意字符,\ ``?`` 匹配除英文句号外的任意字符(\ ``.``\ )。使用空字符串或空表达式时始终为 ``false``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_md5_buffer:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedByteArray<class_PackedByteArray>` **md5_buffer** **(** **)** |const|
|
||
|
||
返回该字符串的 `MD5 哈希 <https://zh.wikipedia.org/wiki/MD5>`__\ ,类型为 :ref:`PackedByteArray<class_PackedByteArray>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_md5_text:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **md5_text** **(** **)** |const|
|
||
|
||
返回该字符串的 `MD5 哈希 <https://zh.wikipedia.org/wiki/MD5>`__\ ,类型 **String**\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_naturalcasecmp_to:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **naturalcasecmp_to** **(** :ref:`String<class_String>` to **)** |const|
|
||
|
||
与另一个字符串进行\ **不区分大小写**\ 的\ *自然顺序*\ 比较。小于时返回 ``-1``\ 、大于时返回 ``1``\ 、等于时返回 ``0``\ 。“小于”和“大于”比较的是字符串中的 `Unicode 码位 <https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8>`__\ ,大致与字母表顺序一致。内部实现时,会将小写字符转换为大写后进行比较。
|
||
|
||
使用自然顺序进行排序时,会和常见预期一样将连续的数字进行组合,而不是一个个数字进行比较。排序后的数列为 ``["1", "2", "3", ...]`` 而不是 ``["1", "10", "2", "3", ...]``\ 。
|
||
|
||
如果字符串长度不同,这个字符串比 ``to`` 字符串长时返回 ``1``\ ,短时返回 ``-1``\ 。请注意空字符串的长度\ *始终*\ 为 ``0``\ 。
|
||
|
||
如果想在比较字符串时获得 :ref:`bool<class_bool>` 返回值,请改用 ``==`` 运算符。另见 :ref:`naturalnocasecmp_to<class_String_method_naturalnocasecmp_to>`\ 、\ :ref:`nocasecmp_to<class_String_method_nocasecmp_to>` 和 :ref:`casecmp_to<class_String_method_casecmp_to>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_naturalnocasecmp_to:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **naturalnocasecmp_to** **(** :ref:`String<class_String>` to **)** |const|
|
||
|
||
与另一个字符串进行\ **不区分大小写**\ 的\ *自然顺序*\ 比较。小于时返回 ``-1``\ 、大于时返回 ``1``\ 、等于时返回 ``0``\ 。“小于”和“大于”比较的是字符串中的 `Unicode 码位 <https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8>`__\ ,大致与字母表顺序一致。内部实现时,会将小写字符转换为大写后进行比较。
|
||
|
||
使用自然顺序进行排序时,会和常见预期一样将连续的数字进行组合,而不是一个个数字进行比较。排序后的数列为 ``["1", "2", "3", ...]`` 而不是 ``["1", "10", "2", "3", ...]``\ 。
|
||
|
||
如果字符串长度不同,这个字符串比 ``to`` 字符串长时返回 ``1``\ ,短时返回 ``-1``\ 。请注意空字符串的长度\ *始终*\ 为 ``0``\ 。
|
||
|
||
如果想在比较字符串时获得 :ref:`bool<class_bool>` 返回值,请改用 ``==`` 运算符。另见 :ref:`naturalcasecmp_to<class_String_method_naturalcasecmp_to>`\ 、\ :ref:`nocasecmp_to<class_String_method_nocasecmp_to>` 和 :ref:`casecmp_to<class_String_method_casecmp_to>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_nocasecmp_to:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **nocasecmp_to** **(** :ref:`String<class_String>` to **)** |const|
|
||
|
||
与另一个字符串进行\ **不区分大小写**\ 的比较。小于时返回 ``-1``\ 、大于时返回 ``1``\ 、等于时返回 ``0``\ 。“小于”和“大于”比较的是字符串中的 `Unicode 码位 <https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8>`__\ ,大致与字母表顺序一致。内部实现时,会将小写字符转换为大写后进行比较。
|
||
|
||
如果字符串长度不同,这个字符串比 ``to`` 字符串长时返回 ``1``\ ,短时返回 ``-1``\ 。请注意空字符串的长度\ *始终*\ 为 ``0``\ 。
|
||
|
||
如果想在比较字符串时获得 :ref:`bool<class_bool>` 返回值,请改用 ``==`` 运算符。另见 :ref:`casecmp_to<class_String_method_casecmp_to>`\ 、\ :ref:`naturalcasecmp_to<class_String_method_naturalcasecmp_to>` 和 :ref:`naturalnocasecmp_to<class_String_method_naturalnocasecmp_to>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_num:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **num** **(** :ref:`float<class_float>` number, :ref:`int<class_int>` decimals=-1 **)** |static|
|
||
|
||
将 :ref:`float<class_float>` 转换为十进制小数的字符串表示,小数点位数由 ``decimals`` 指定。
|
||
|
||
如果 ``decimals`` 为默认的 ``-1``\ ,该字符串表示可能最多只有 14 位有效数字,小数点前的数字优先于小数点后的数字。
|
||
|
||
该字符串中不包含后缀的零。最后一位数字会四舍五入,而不是截断。
|
||
|
||
\ **示例:**\
|
||
|
||
::
|
||
|
||
String.num(3.141593) # 返回 "3.141593"
|
||
String.num(3.141593, 3) # 返回 "3.142"
|
||
String.num(3.14159300) # 返回 "3.141593"
|
||
|
||
# 此处的最后一位数字会进位,
|
||
# 数字位数会减少,因为后缀的零会被移除:
|
||
String.num(42.129999, 5) # 返回 "42.13"
|
||
|
||
# 如果没有指定 `decimals`,最大有效位数为 14:
|
||
String.num(-0.0000012345432123454321) # 返回 "-0.00000123454321"
|
||
String.num(-10000.0000012345432123454321) # 返回 "-10000.0000012345"
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_num_int64:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **num_int64** **(** :ref:`int<class_int>` number, :ref:`int<class_int>` base=10, :ref:`bool<class_bool>` capitalize_hex=false **)** |static|
|
||
|
||
将给定的数字 ``number`` 转换为字符串表示,进位制由 ``base`` 给定。
|
||
|
||
默认情况下 ``base`` 为十进制(\ ``10``\ )。编程中常见的进位制还有二进制(\ ``2``\ )、\ `八进制 <https://zh.wikipedia.org/wiki/%E5%85%AB%E8%BF%9B%E5%88%B6>`__\ (\ ``8``\ )、十六进制(\ ``16``\ )。
|
||
|
||
如果 ``capitalize_hex`` 为 ``true``\ ,比 9 大的数位会大写。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_num_scientific:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **num_scientific** **(** :ref:`float<class_float>` number **)** |static|
|
||
|
||
将给定的数字 ``number`` 转换为字符串表示,使用科学记数法。
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
var n = -5.2e8
|
||
print(n) # 输出 -520000000
|
||
print(String.NumScientific(n)) # 输出 -5.2e+08
|
||
|
||
.. code-tab:: csharp
|
||
|
||
// 这个方法没有在 C# 中实现。
|
||
// 请在 `string.ToString()` 中使用 "e" 来实现类似的结果。
|
||
var n = -5.2e8f;
|
||
GD.Print(n); // 输出 -520000000
|
||
GD.Print(n.ToString("e1")); // 输出 -5.2e+008
|
||
|
||
|
||
|
||
\ **注意:**\ 这个方法没有在 C# 中实现。要实现类似的效果,见 C# 的\ `标准数字格式字符串 <https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-numeric-format-strings>`__
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_num_uint64:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **num_uint64** **(** :ref:`int<class_int>` number, :ref:`int<class_int>` base=10, :ref:`bool<class_bool>` capitalize_hex=false **)** |static|
|
||
|
||
将给定的无符号 :ref:`int<class_int>` 转换为字符串表示,进位制由 ``base`` 给定。
|
||
|
||
默认情况下 ``base`` 为十进制(\ ``10``\ )。编程中常见的进位制还有二进制(\ ``2``\ )、\ `八进制 <https://zh.wikipedia.org/wiki/%E5%85%AB%E8%BF%9B%E5%88%B6>`__\ (\ ``8``\ )、十六进制(\ ``16``\ )。
|
||
|
||
如果 ``capitalize_hex`` 为 ``true``\ ,比 9 大的数位会大写。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_pad_decimals:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **pad_decimals** **(** :ref:`int<class_int>` digits **)** |const|
|
||
|
||
格式化表示数字的字符串,使其小数点\ *后*\ 的位数为 ``digits``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_pad_zeros:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **pad_zeros** **(** :ref:`int<class_int>` digits **)** |const|
|
||
|
||
格式化表示数字的字符串,使其小数点\ *前*\ 的位数为 ``digits``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_path_join:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **path_join** **(** :ref:`String<class_String>` file **)** |const|
|
||
|
||
将 ``file`` 作为子路径连接到该字符串的末尾,必要时会添加 ``/``\ 。
|
||
|
||
\ **示例:**\ ``"this/is".path_join("path") == "this/is/path"``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_repeat:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **repeat** **(** :ref:`int<class_int>` count **)** |const|
|
||
|
||
将该字符串重复若干次。次数 ``count`` 需要大于\ ``0`` 。否则返回空字符串。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_replace:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **replace** **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)** |const|
|
||
|
||
将该字符串中出现的所有 ``what`` 都替换为给定的 ``forwhat``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_replacen:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **replacen** **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)** |const|
|
||
|
||
将该字符串中出现的所有 ``what`` 都替换为给定的 ``forwhat``\ ,\ **大小写不敏感**\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_reverse:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **reverse** **(** **)** |const|
|
||
|
||
返回将这个字符串逆序后的副本。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_rfind:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **rfind** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)** |const|
|
||
|
||
返回这个字符串中 ``what`` **最后一次**\ 出现时的索引,不存在时则为 ``-1``\ 。搜索的起点可以用 ``from`` 指定,终点为该字符串的末尾。这个方法与 :ref:`find<class_String_method_find>` 相对。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_rfindn:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **rfindn** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)** |const|
|
||
|
||
返回这个字符串中 ``what`` **最后一次**\ 出现时的索引,\ **不区分大小写**\ ,不存在时则为 ``-1``\ 。搜索的起点可以用 ``from`` 指定,终点为该字符串的末尾。这个方法与 :ref:`findn<class_String_method_findn>` 相对。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_right:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **right** **(** :ref:`int<class_int>` length **)** |const|
|
||
|
||
返回该字符串末尾的最后 ``length`` 个字符。如果 ``length`` 为负,则会从该字符串的开头剥离前 ``length`` 个字符。
|
||
|
||
::
|
||
|
||
print("Hello World!".right(3)) # 输出 "ld!"
|
||
print("Hello World!".right(-4)) # 输出 "o World!"
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_rpad:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **rpad** **(** :ref:`int<class_int>` min_length, :ref:`String<class_String>` character=" " **)** |const|
|
||
|
||
必要时在该字符串的右侧添加若干 ``character`` 字符,使其长度至少为 ``min_length``\ 。另见 :ref:`lpad<class_String_method_lpad>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_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|
|
||
|
||
使用分隔符 ``delimiter`` 将该字符串从末尾开始进行拆分,返回子字符串数组。返回的数组中,每部分的出现顺序与它们在原字符串中的出现顺序一致。如果 ``delimiter`` 为空,则子串为单个字符。
|
||
|
||
如果 ``allow_empty`` 为 ``false``\ ,数组中会排除相邻分隔符之间的空字符串。
|
||
|
||
如果 ``maxsplit`` 大于 ``0``\ ,则拆分次数不能超过 ``maxsplit``\ 。默认拆分整个字符串,基本与 :ref:`split<class_String_method_split>` 一致。
|
||
|
||
\ **示例:**\
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
var some_string = "One,Two,Three,Four"
|
||
var some_array = some_string.rsplit(",", true, 1)
|
||
|
||
print(some_array.size()) # 输出 2
|
||
print(some_array[0]) # 输出 "One,Two,Three"
|
||
print(some_array[1]) # 输出 "Four"
|
||
|
||
.. code-tab:: csharp
|
||
|
||
// C# 中没有 String.RSplit() 方法。
|
||
|
||
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_rstrip:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **rstrip** **(** :ref:`String<class_String>` chars **)** |const|
|
||
|
||
从该字符串的结尾移除 ``chars`` 中定义的字符。另见 :ref:`rstrip<class_String_method_rstrip>`\ 。
|
||
|
||
\ **注意:**\ ``chars`` 不是后缀。如果要移除后缀而不是一组字符,请使用 :ref:`trim_suffix<class_String_method_trim_suffix>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_sha1_buffer:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedByteArray<class_PackedByteArray>` **sha1_buffer** **(** **)** |const|
|
||
|
||
返回该字符串的 `SHA-1 <https://zh.wikipedia.org/wiki/SHA-1>`__ 哈希,类型为 :ref:`PackedByteArray<class_PackedByteArray>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_sha1_text:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **sha1_text** **(** **)** |const|
|
||
|
||
返回该字符串的 `SHA-1 <https://zh.wikipedia.org/wiki/SHA-1>`__ 哈希,类型为 **String**\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_sha256_buffer:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedByteArray<class_PackedByteArray>` **sha256_buffer** **(** **)** |const|
|
||
|
||
返回该字符串的 `SHA-256 <https://zh.wikipedia.org/wiki/SHA-2>`__ 哈希,类型为 :ref:`PackedByteArray<class_PackedByteArray>`\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_sha256_text:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **sha256_text** **(** **)** |const|
|
||
|
||
返回该字符串的 `SHA-256 <https://zh.wikipedia.org/wiki/SHA-2>`__ 哈希,类型为 **String**\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_similarity:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`float<class_float>` **similarity** **(** :ref:`String<class_String>` text **)** |const|
|
||
|
||
返回该字符串与另一个字符串的相似指数(\ `索伦森-戴斯系数 <https://zh.wikipedia.org/wiki/Dice%E7%B3%BB%E6%95%B0>`__\ )。结果为 ``1.0`` 表示完全相似,\ ``0.0`` 表示完全不相似。
|
||
|
||
::
|
||
|
||
print("ABC123".similarity("ABC123")) # 输出 1.0
|
||
print("ABC123".similarity("XYZ456")) # 输出 0.0
|
||
print("ABC123".similarity("123ABC")) # 输出 0.8
|
||
print("ABC123".similarity("abc123")) # 输出 0.4
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_simplify_path:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **simplify_path** **(** **)** |const|
|
||
|
||
如果该字符串为有效的文件路径,则将其转换为规范路径。规范路径是最短路径,不带 ``"./"`` 和所有不必要的 ``".."`` 和 ``"/"``\ 。
|
||
|
||
::
|
||
|
||
var simple_path = "./path/to///../file".simplify_path()
|
||
print(simple_path) # 输出 "path/file"
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_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|
|
||
|
||
使用分隔符 ``delimiter`` 将该字符串进行拆分,返回子字符串数组。如果 ``delimiter`` 为空,则子串为单个字符。这个方法与 :ref:`join<class_String_method_join>` 相对。
|
||
|
||
如果 ``allow_empty`` 为 ``false``\ ,数组中会排除相邻分隔符之间的空字符串。
|
||
|
||
如果 ``maxsplit`` 大于 ``0``\ ,则拆分次数不能超过 ``maxsplit``\ 。默认拆分整个字符串。
|
||
|
||
\ **示例:**\
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
var some_array = "One,Two,Three,Four".split(",", true, 2)
|
||
|
||
print(some_array.size()) # 输出 3
|
||
print(some_array[0]) # 输出 "One"
|
||
print(some_array[1]) # 输出 "Two"
|
||
print(some_array[2]) # 输出 "Three,Four"
|
||
|
||
.. code-tab:: csharp
|
||
|
||
// C# 的 `Split()` 不支持 `maxsplit` 参数。
|
||
var someArray = "One,Two,Three".Split(",");
|
||
|
||
GD.Print(someArray[0]); // 输出 "One"
|
||
GD.Print(someArray[1]); // 输出 "Two"
|
||
GD.Print(someArray[2]); // 输出 "Three"
|
||
|
||
|
||
|
||
\ **注意:**\ 如果你只需要数组中的某一个子串,请考虑使用更快的 :ref:`get_slice<class_String_method_get_slice>`\ 。如果你需要用更复杂的规则来拆分字符串,请改用 :ref:`RegEx<class_RegEx>` 类。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_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|
|
||
|
||
使用分隔符 ``delimiter`` 将该字符串拆分为浮点数,返回 :ref:`PackedFloat64Array<class_PackedFloat64Array>`\ 。
|
||
|
||
如果 ``allow_empty`` 为 ``false``\ ,则会排除相邻分隔符之间为空或无法转换为 :ref:`float<class_float>` 的内容。
|
||
|
||
::
|
||
|
||
var a = "1,2,4.5".split_floats(",") # a 为 [1.0, 2.0, 4.5]
|
||
var c = "1| ||4.5".split_floats("|") # c 为 [1.0, 0.0, 0.0, 4.5]
|
||
var b = "1| ||4.5".split_floats("|", false) # b 为 [1.0, 4.5]
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_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|
|
||
|
||
从该字符串的开头和结尾剥离所有不可打印的字符。其中包括空格、制表符(\ ``\t``\ )以及换行符(\ ``\n`` ``\r``\ )。
|
||
|
||
如果 ``left`` 为 ``false``\ ,会忽略该字符串的开头。与此类似,如果 ``right`` 为 ``false``\ ,则会忽略该字符串的结尾。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_strip_escapes:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **strip_escapes** **(** **)** |const|
|
||
|
||
从该字符串中剥离所有转义字符。其中包括 ASCII 表第一页的所有不可打印控制字符(值为 0 到 32),例如制表符(C 中的 ``\t``\ )和换行符(\ ``\n`` 和 ``]\r``) 字符,但\ *不包括*\ 空格。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_substr:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **substr** **(** :ref:`int<class_int>` from, :ref:`int<class_int>` len=-1 **)** |const|
|
||
|
||
返回该字符串中的某一部分,位置从 ``from`` 开始,长度为 ``len``\ 。如果 ``len`` 为 ``-1``\ (默认值),将返回开给定位置开始的剩余字符。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_ascii_buffer:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedByteArray<class_PackedByteArray>` **to_ascii_buffer** **(** **)** |const|
|
||
|
||
将该字符串转换为 `ASCII <https://zh.wikipedia.org/wiki/ASCII>`__/Latin-1 编码的 :ref:`PackedByteArray<class_PackedByteArray>`\ 。这个方法比 :ref:`to_utf8_buffer<class_String_method_to_utf8_buffer>` 稍快,但会把不支持的字符都替换为空格。这是 :ref:`PackedByteArray.get_string_from_ascii<class_PackedByteArray_method_get_string_from_ascii>` 的逆运算。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_camel_case:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **to_camel_case** **(** **)** |const|
|
||
|
||
返回将该字符串转换为小驼峰命名 ``camelCase`` 的结果。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_float:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`float<class_float>` **to_float** **(** **)** |const|
|
||
|
||
将代表十进制数的字符串转换为 :ref:`float<class_float>`\ 。该方法会在首个非数字字符处停止,除非是首次遇到 ``.``\ (小数点)以及表示指数的 ``e``\ 。另见 :ref:`is_valid_float<class_String_method_is_valid_float>`\ 。
|
||
|
||
::
|
||
|
||
var a = "12.35".to_float() # a 为 12.35
|
||
var b = "1.2.3".to_float() # b 为 1.2
|
||
var c = "12xy3".to_float() # c 为 12.0
|
||
var d = "1e3".to_float() # d 为 1000.0
|
||
var e = "Hello!".to_float() # e 为 0.0
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_int:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **to_int** **(** **)** |const|
|
||
|
||
将代表整数的字符串转换为 :ref:`int<class_int>`\ 。该方法会删除所有非数字字符,并在遇到 ``.`` 后停止。另见 :ref:`is_valid_int<class_String_method_is_valid_int>`\ 。
|
||
|
||
::
|
||
|
||
var a = "123".to_int() # a 为 123
|
||
var b = "x1y2z3".to_int() # b 为 123
|
||
var c = "-1.2.3".to_int() # c 为 -1
|
||
var d = "Hello!".to_int() # d 为 0
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_lower:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **to_lower** **(** **)** |const|
|
||
|
||
返回将该字符串转换为小写的结果。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_pascal_case:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **to_pascal_case** **(** **)** |const|
|
||
|
||
返回将该字符串转换为大驼峰命名 ``PascalCase`` 的结果。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_snake_case:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **to_snake_case** **(** **)** |const|
|
||
|
||
返回将该字符串转换为蛇形命名 ``snake_case`` 的结果。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_upper:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **to_upper** **(** **)** |const|
|
||
|
||
返回将该字符串转换为大写的结果。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_utf8_buffer:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedByteArray<class_PackedByteArray>` **to_utf8_buffer** **(** **)** |const|
|
||
|
||
将该字符串转换为 `UTF-8 <https://zh.wikipedia.org/wiki/UTF-8>`__ 编码的 :ref:`PackedByteArray<class_PackedByteArray>`\ 。这个方法比 :ref:`to_ascii_buffer<class_String_method_to_ascii_buffer>` 稍慢,但支持所有 UTF-8 字符。大多数情况下请优先使用这个方法。这是 :ref:`PackedByteArray.get_string_from_utf8<class_PackedByteArray_method_get_string_from_utf8>` 的逆运算。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_utf16_buffer:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedByteArray<class_PackedByteArray>` **to_utf16_buffer** **(** **)** |const|
|
||
|
||
将该字符串转换为 `UTF-16 <https://zh.wikipedia.org/wiki/UTF-16>`__ 编码的 :ref:`PackedByteArray<class_PackedByteArray>`\ 。这是 :ref:`PackedByteArray.get_string_from_utf16<class_PackedByteArray_method_get_string_from_utf16>` 的逆运算。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_utf32_buffer:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedByteArray<class_PackedByteArray>` **to_utf32_buffer** **(** **)** |const|
|
||
|
||
将该字符串转换为 `UTF-32 <https://zh.wikipedia.org/wiki/UTF-32>`__ 编码的 :ref:`PackedByteArray<class_PackedByteArray>`\ 。这是 :ref:`PackedByteArray.get_string_from_utf32<class_PackedByteArray_method_get_string_from_utf32>` 的逆运算。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_to_wchar_buffer:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedByteArray<class_PackedByteArray>` **to_wchar_buffer** **(** **)** |const|
|
||
|
||
将该字符串转换为 `宽字符 <https://zh.wikipedia.org/zh-cn/%E5%AF%AC%E5%AD%97%E5%85%83>`__\ (\ ``wchat_t``\ ,Windows 上为 UTF-16,其他平台上为 UTF-32)编码的 :ref:`PackedByteArray<class_PackedByteArray>`\ 。这是 :ref:`PackedByteArray.get_string_from_wchar<class_PackedByteArray_method_get_string_from_wchar>` 的逆运算。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_trim_prefix:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **trim_prefix** **(** :ref:`String<class_String>` prefix **)** |const|
|
||
|
||
移除该字符串开头的 ``prefix`` 前缀,否则原样返回该字符串。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_trim_suffix:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **trim_suffix** **(** :ref:`String<class_String>` suffix **)** |const|
|
||
|
||
移除该字符串末尾的 ``suffix`` 后缀,否则原样返回该字符串。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_unicode_at:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **unicode_at** **(** :ref:`int<class_int>` at **)** |const|
|
||
|
||
返回位于 ``at`` 处的字符的代码。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_uri_decode:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **uri_decode** **(** **)** |const|
|
||
|
||
将该字符串从 URL 编码格式中解码。该方法的目的是在收到 HTTP 请求时正确解码 URL 中的参数。另见 :ref:`uri_encode<class_String_method_uri_encode>`\ 。
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
|
||
print(url.uri_decode()) # 输出 "$DOCS_URL/?highlight=Godot Engine:docs"
|
||
|
||
.. code-tab:: csharp
|
||
|
||
var url = "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
|
||
GD.Print(url.URIDecode()) // 输出 "$DOCS_URL/?highlight=Godot Engine:docs"
|
||
|
||
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_uri_encode:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **uri_encode** **(** **)** |const|
|
||
|
||
将该字符串按照对 URL 友好的格式进行编码。该方法的目的是在发送 HTTP 请求时,正确编码 URL 中的参数。另见 :ref:`uri_decode<class_String_method_uri_decode>`\ 。
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
var prefix = "$DOCS_URL/?highlight="
|
||
var url = prefix + "Godot Engine:docs".uri_encode()
|
||
|
||
print(url) # 输出 "$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); // 输出 "$DOCS_URL/?highlight=Godot%20Engine%3%docs"
|
||
|
||
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_validate_filename:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **validate_filename** **(** **)** |const|
|
||
|
||
返回该字符串的副本,所有 :ref:`is_valid_filename<class_String_method_is_valid_filename>` 中不允许的字符都会被替换为下划线。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_validate_node_name:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **validate_node_name** **(** **)** |const|
|
||
|
||
返回该字符串的副本,所有 :ref:`Node.name<class_Node_property_name>` 中不允许的字符都会被替换为下划线(\ ``.`` ``:`` ``@`` ``/`` ``"`` ``%``))。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_xml_escape:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **xml_escape** **(** :ref:`bool<class_bool>` escape_quotes=false **)** |const|
|
||
|
||
返回该字符串的副本,使用 XML 标准对特殊字符进行转义。如果 ``escape_quotes`` 为 ``true``\ ,则单引号(\ ``'``\ )和双引号(\ ``"``\ )字符也会被转义。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_method_xml_unescape:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`String<class_String>` **xml_unescape** **(** **)** |const|
|
||
|
||
返回该字符串的副本,转义字符均按照 XML 标准使用本义代替。
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
操作符说明
|
||
----------
|
||
|
||
.. _class_String_operator_neq_String:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator !=** **(** :ref:`String<class_String>` right **)**
|
||
|
||
如果两个字符串不以相同的字符序列开头,则返回 ``true``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_neq_StringName:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator !=** **(** :ref:`StringName<class_StringName>` right **)**
|
||
|
||
如果该 **String** 与给定的 :ref:`StringName<class_StringName>` 不等价,则返回 ``true``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_mod_Variant:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`String<class_String>` **operator %** **(** :ref:`Variant<class_Variant>` right **)**
|
||
|
||
格式化该 **String**\ ,使用若干参数替换占位符。要传递多个参数,\ ``right`` 需要为 :ref:`Array<class_Array>`\ 。
|
||
|
||
::
|
||
|
||
print("我捉到了 %d 条鱼!" % 2) # 输出 "我捉到了 2 条鱼!"
|
||
|
||
var my_message = "正在前往 %s,速度为 %2.2f km/h。"
|
||
var location = "深谷"
|
||
var speed = 40.3485
|
||
print(my_message % [location, speed]) # 输出 "正在前往深谷,速度为 40.35 km/h。"
|
||
|
||
更多信息见\ :doc:`《GDScript 格式字符串》 <../tutorials/scripting/gdscript/gdscript_format_string>`\ 教程。
|
||
|
||
\ **注意:**\ C# 中没有等价的运算符。见\ `如何使用“$”插入字符串 <https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated>`__\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_sum_String:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`String<class_String>` **operator +** **(** :ref:`String<class_String>` right **)**
|
||
|
||
将 ``right`` 追加到该 **String** 的末尾,也称作字符串连接。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_sum_StringName:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`String<class_String>` **operator +** **(** :ref:`StringName<class_StringName>` right **)**
|
||
|
||
将 ``right`` 追加到该 **String** 的末尾,返回 **String**\ 。也称作字符串连接。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_lt_String:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator <** **(** :ref:`String<class_String>` right **)**
|
||
|
||
如果左侧的 **String** 比 ``right`` 靠前,则返回 ``true``\ 。使用的是 `Unicode 顺序 <https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8>`__\ ,大致与字母表顺序一致。可用于排序。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_lte_String:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator <=** **(** :ref:`String<class_String>` right **)**
|
||
|
||
如果左侧的 **String** 比 ``right`` 靠前,或两者相等,则返回 ``true``\ 。使用的是 `Unicode 顺序 <https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8>`__\ ,大致与字母表顺序一致。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_eq_String:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator ==** **(** :ref:`String<class_String>` right **)**
|
||
|
||
如果两个字符串以相同的字符序列开头,则返回 ``true``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_eq_StringName:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator ==** **(** :ref:`StringName<class_StringName>` right **)**
|
||
|
||
如果该 **String** 与给定的 :ref:`StringName<class_StringName>` 等价,则返回 ``true``\ 。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_gt_String:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator >** **(** :ref:`String<class_String>` right **)**
|
||
|
||
如果左侧的 **String** 比 ``right`` 靠后,则返回 ``true``\ 。使用的是 `Unicode 顺序 <https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8>`__\ ,大致与字母表顺序一致。可用于排序。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_gte_String:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`bool<class_bool>` **operator >=** **(** :ref:`String<class_String>` right **)**
|
||
|
||
如果左侧的 **String** 比 ``right`` 靠后,或两者相等,则返回 ``true``\ 。使用的是 `Unicode 顺序 <https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%88%97%E8%A1%A8>`__\ ,大致与字母表顺序一致。
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_String_operator_idx_int:
|
||
|
||
.. rst-class:: classref-operator
|
||
|
||
:ref:`String<class_String>` **operator []** **(** :ref:`int<class_int>` index **)**
|
||
|
||
返回只包含索引为 ``index`` 的字符的新 **String**\ 。索引从 ``0`` 开始。如果 ``index`` 大于等于 ``0``\ ,则字符是从该字符串的开头开始获取的。如果 ``index`` 为负,则从末尾开始获取。越界访问字符串会导致运行时错误,从编辑器中运行时会将项目暂停。
|
||
|
||
.. |virtual| replace:: :abbr:`virtual (本方法通常需要用户覆盖才能生效。)`
|
||
.. |const| replace:: :abbr:`const (本方法没有副作用。不会修改该实例的任何成员变量。)`
|
||
.. |vararg| replace:: :abbr:`vararg (本方法除了在此处描述的参数外,还能够继续接受任意数量的参数。)`
|
||
.. |constructor| replace:: :abbr:`constructor (本方法用于构造某个类型。)`
|
||
.. |static| replace:: :abbr:`static (调用本方法无需实例,所以可以直接使用类名调用。)`
|
||
.. |operator| replace:: :abbr:`operator (本方法描述的是使用本类型作为左操作数的有效操作符。)`
|
||
.. |bitfield| replace:: :abbr:`BitField (这个值是由下列标志构成的位掩码整数。)`
|