class_string.rst 92 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/String.xml.
  6. .. _class_String:
  7. String
  8. ======
  9. Built-in string class.
  10. .. rst-class:: classref-introduction-group
  11. Description
  12. -----------
  13. This is the built-in string class (and the one used by GDScript). It supports Unicode and provides all necessary means for string handling. Strings are reference-counted and use a copy-on-write approach, so passing them around is cheap in resources.
  14. .. rst-class:: classref-introduction-group
  15. Tutorials
  16. ---------
  17. - :doc:`../tutorials/scripting/gdscript/gdscript_format_string`
  18. .. rst-class:: classref-reftable-group
  19. Methods
  20. -------
  21. .. table::
  22. :widths: auto
  23. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  24. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`bool<class_bool>` from **)** |
  25. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  26. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`int<class_int>` from **)** |
  27. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  28. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`float<class_float>` from **)** |
  29. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  30. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Vector2<class_Vector2>` from **)** |
  31. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  32. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Rect2<class_Rect2>` from **)** |
  33. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  34. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Vector3<class_Vector3>` from **)** |
  35. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  36. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Transform2D<class_Transform2D>` from **)** |
  37. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  38. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Plane<class_Plane>` from **)** |
  39. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  40. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Quat<class_Quat>` from **)** |
  41. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`AABB<class_AABB>` from **)** |
  43. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Basis<class_Basis>` from **)** |
  45. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Transform<class_Transform>` from **)** |
  47. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Color<class_Color>` from **)** |
  49. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`NodePath<class_NodePath>` from **)** |
  51. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`RID<class_RID>` from **)** |
  53. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Dictionary<class_Dictionary>` from **)** |
  55. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  56. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`Array<class_Array>` from **)** |
  57. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  58. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`PoolByteArray<class_PoolByteArray>` from **)** |
  59. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  60. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`PoolIntArray<class_PoolIntArray>` from **)** |
  61. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  62. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`PoolRealArray<class_PoolRealArray>` from **)** |
  63. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  64. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`PoolStringArray<class_PoolStringArray>` from **)** |
  65. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  66. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`PoolVector2Array<class_PoolVector2Array>` from **)** |
  67. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  68. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`PoolVector3Array<class_PoolVector3Array>` from **)** |
  69. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  70. | :ref:`String<class_String>` | :ref:`String<class_String_method_String>` **(** :ref:`PoolColorArray<class_PoolColorArray>` from **)** |
  71. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  72. | :ref:`bool<class_bool>` | :ref:`begins_with<class_String_method_begins_with>` **(** :ref:`String<class_String>` text **)** |
  73. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  74. | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`bigrams<class_String_method_bigrams>` **(** **)** |
  75. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  76. | :ref:`String<class_String>` | :ref:`c_escape<class_String_method_c_escape>` **(** **)** |
  77. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  78. | :ref:`String<class_String>` | :ref:`c_unescape<class_String_method_c_unescape>` **(** **)** |
  79. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  80. | :ref:`String<class_String>` | :ref:`capitalize<class_String_method_capitalize>` **(** **)** |
  81. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  82. | :ref:`int<class_int>` | :ref:`casecmp_to<class_String_method_casecmp_to>` **(** :ref:`String<class_String>` to **)** |
  83. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  84. | :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 **)** |
  85. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  86. | :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 **)** |
  87. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  88. | :ref:`String<class_String>` | :ref:`dedent<class_String_method_dedent>` **(** **)** |
  89. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  90. | :ref:`bool<class_bool>` | :ref:`empty<class_String_method_empty>` **(** **)** |
  91. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  92. | :ref:`bool<class_bool>` | :ref:`ends_with<class_String_method_ends_with>` **(** :ref:`String<class_String>` text **)** |
  93. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  94. | void | :ref:`erase<class_String_method_erase>` **(** :ref:`int<class_int>` position, :ref:`int<class_int>` chars **)** |
  95. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  96. | :ref:`int<class_int>` | :ref:`find<class_String_method_find>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)** |
  97. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  98. | :ref:`int<class_int>` | :ref:`find_last<class_String_method_find_last>` **(** :ref:`String<class_String>` what **)** |
  99. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  100. | :ref:`int<class_int>` | :ref:`findn<class_String_method_findn>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)** |
  101. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  102. | :ref:`String<class_String>` | :ref:`format<class_String_method_format>` **(** :ref:`Variant<class_Variant>` values, :ref:`String<class_String>` placeholder="{_}" **)** |
  103. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  104. | :ref:`String<class_String>` | :ref:`get_base_dir<class_String_method_get_base_dir>` **(** **)** |
  105. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  106. | :ref:`String<class_String>` | :ref:`get_basename<class_String_method_get_basename>` **(** **)** |
  107. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  108. | :ref:`String<class_String>` | :ref:`get_extension<class_String_method_get_extension>` **(** **)** |
  109. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  110. | :ref:`String<class_String>` | :ref:`get_file<class_String_method_get_file>` **(** **)** |
  111. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  112. | :ref:`String<class_String>` | :ref:`get_slice<class_String_method_get_slice>` **(** :ref:`String<class_String>` delimiter, :ref:`int<class_int>` slice **)** |
  113. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  114. | :ref:`int<class_int>` | :ref:`hash<class_String_method_hash>` **(** **)** |
  115. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  116. | :ref:`int<class_int>` | :ref:`hex_to_int<class_String_method_hex_to_int>` **(** **)** |
  117. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  118. | :ref:`String<class_String>` | :ref:`http_escape<class_String_method_http_escape>` **(** **)** |
  119. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  120. | :ref:`String<class_String>` | :ref:`http_unescape<class_String_method_http_unescape>` **(** **)** |
  121. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  122. | :ref:`String<class_String>` | :ref:`humanize_size<class_String_method_humanize_size>` **(** :ref:`int<class_int>` size **)** |
  123. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  124. | :ref:`String<class_String>` | :ref:`indent<class_String_method_indent>` **(** :ref:`String<class_String>` prefix **)** |
  125. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  126. | :ref:`String<class_String>` | :ref:`insert<class_String_method_insert>` **(** :ref:`int<class_int>` position, :ref:`String<class_String>` what **)** |
  127. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  128. | :ref:`bool<class_bool>` | :ref:`is_abs_path<class_String_method_is_abs_path>` **(** **)** |
  129. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  130. | :ref:`bool<class_bool>` | :ref:`is_rel_path<class_String_method_is_rel_path>` **(** **)** |
  131. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  132. | :ref:`bool<class_bool>` | :ref:`is_subsequence_of<class_String_method_is_subsequence_of>` **(** :ref:`String<class_String>` text **)** |
  133. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  134. | :ref:`bool<class_bool>` | :ref:`is_subsequence_ofi<class_String_method_is_subsequence_ofi>` **(** :ref:`String<class_String>` text **)** |
  135. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  136. | :ref:`bool<class_bool>` | :ref:`is_valid_filename<class_String_method_is_valid_filename>` **(** **)** |
  137. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  138. | :ref:`bool<class_bool>` | :ref:`is_valid_float<class_String_method_is_valid_float>` **(** **)** |
  139. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  140. | :ref:`bool<class_bool>` | :ref:`is_valid_hex_number<class_String_method_is_valid_hex_number>` **(** :ref:`bool<class_bool>` with_prefix=false **)** |
  141. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  142. | :ref:`bool<class_bool>` | :ref:`is_valid_html_color<class_String_method_is_valid_html_color>` **(** **)** |
  143. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  144. | :ref:`bool<class_bool>` | :ref:`is_valid_identifier<class_String_method_is_valid_identifier>` **(** **)** |
  145. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  146. | :ref:`bool<class_bool>` | :ref:`is_valid_integer<class_String_method_is_valid_integer>` **(** **)** |
  147. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  148. | :ref:`bool<class_bool>` | :ref:`is_valid_ip_address<class_String_method_is_valid_ip_address>` **(** **)** |
  149. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  150. | :ref:`String<class_String>` | :ref:`join<class_String_method_join>` **(** :ref:`PoolStringArray<class_PoolStringArray>` parts **)** |
  151. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  152. | :ref:`String<class_String>` | :ref:`json_escape<class_String_method_json_escape>` **(** **)** |
  153. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  154. | :ref:`String<class_String>` | :ref:`left<class_String_method_left>` **(** :ref:`int<class_int>` position **)** |
  155. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  156. | :ref:`int<class_int>` | :ref:`length<class_String_method_length>` **(** **)** |
  157. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  158. | :ref:`String<class_String>` | :ref:`lstrip<class_String_method_lstrip>` **(** :ref:`String<class_String>` chars **)** |
  159. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  160. | :ref:`bool<class_bool>` | :ref:`match<class_String_method_match>` **(** :ref:`String<class_String>` expr **)** |
  161. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  162. | :ref:`bool<class_bool>` | :ref:`matchn<class_String_method_matchn>` **(** :ref:`String<class_String>` expr **)** |
  163. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  164. | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`md5_buffer<class_String_method_md5_buffer>` **(** **)** |
  165. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  166. | :ref:`String<class_String>` | :ref:`md5_text<class_String_method_md5_text>` **(** **)** |
  167. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  168. | :ref:`int<class_int>` | :ref:`naturalnocasecmp_to<class_String_method_naturalnocasecmp_to>` **(** :ref:`String<class_String>` to **)** |
  169. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  170. | :ref:`int<class_int>` | :ref:`nocasecmp_to<class_String_method_nocasecmp_to>` **(** :ref:`String<class_String>` to **)** |
  171. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  172. | :ref:`int<class_int>` | :ref:`ord_at<class_String_method_ord_at>` **(** :ref:`int<class_int>` at **)** |
  173. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  174. | :ref:`String<class_String>` | :ref:`pad_decimals<class_String_method_pad_decimals>` **(** :ref:`int<class_int>` digits **)** |
  175. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  176. | :ref:`String<class_String>` | :ref:`pad_zeros<class_String_method_pad_zeros>` **(** :ref:`int<class_int>` digits **)** |
  177. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  178. | :ref:`String<class_String>` | :ref:`percent_decode<class_String_method_percent_decode>` **(** **)** |
  179. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  180. | :ref:`String<class_String>` | :ref:`percent_encode<class_String_method_percent_encode>` **(** **)** |
  181. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  182. | :ref:`String<class_String>` | :ref:`plus_file<class_String_method_plus_file>` **(** :ref:`String<class_String>` file **)** |
  183. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  184. | :ref:`String<class_String>` | :ref:`repeat<class_String_method_repeat>` **(** :ref:`int<class_int>` count **)** |
  185. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  186. | :ref:`String<class_String>` | :ref:`replace<class_String_method_replace>` **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)** |
  187. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  188. | :ref:`String<class_String>` | :ref:`replacen<class_String_method_replacen>` **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)** |
  189. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  190. | :ref:`int<class_int>` | :ref:`rfind<class_String_method_rfind>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)** |
  191. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  192. | :ref:`int<class_int>` | :ref:`rfindn<class_String_method_rfindn>` **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)** |
  193. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  194. | :ref:`String<class_String>` | :ref:`right<class_String_method_right>` **(** :ref:`int<class_int>` position **)** |
  195. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  196. | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`rsplit<class_String_method_rsplit>` **(** :ref:`String<class_String>` delimiter, :ref:`bool<class_bool>` allow_empty=true, :ref:`int<class_int>` maxsplit=0 **)** |
  197. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  198. | :ref:`String<class_String>` | :ref:`rstrip<class_String_method_rstrip>` **(** :ref:`String<class_String>` chars **)** |
  199. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  200. | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`sha1_buffer<class_String_method_sha1_buffer>` **(** **)** |
  201. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  202. | :ref:`String<class_String>` | :ref:`sha1_text<class_String_method_sha1_text>` **(** **)** |
  203. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  204. | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`sha256_buffer<class_String_method_sha256_buffer>` **(** **)** |
  205. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  206. | :ref:`String<class_String>` | :ref:`sha256_text<class_String_method_sha256_text>` **(** **)** |
  207. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  208. | :ref:`float<class_float>` | :ref:`similarity<class_String_method_similarity>` **(** :ref:`String<class_String>` text **)** |
  209. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  210. | :ref:`String<class_String>` | :ref:`simplify_path<class_String_method_simplify_path>` **(** **)** |
  211. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  212. | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`split<class_String_method_split>` **(** :ref:`String<class_String>` delimiter, :ref:`bool<class_bool>` allow_empty=true, :ref:`int<class_int>` maxsplit=0 **)** |
  213. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  214. | :ref:`PoolRealArray<class_PoolRealArray>` | :ref:`split_floats<class_String_method_split_floats>` **(** :ref:`String<class_String>` delimiter, :ref:`bool<class_bool>` allow_empty=true **)** |
  215. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  216. | :ref:`String<class_String>` | :ref:`strip_edges<class_String_method_strip_edges>` **(** :ref:`bool<class_bool>` left=true, :ref:`bool<class_bool>` right=true **)** |
  217. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  218. | :ref:`String<class_String>` | :ref:`strip_escapes<class_String_method_strip_escapes>` **(** **)** |
  219. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  220. | :ref:`String<class_String>` | :ref:`substr<class_String_method_substr>` **(** :ref:`int<class_int>` from, :ref:`int<class_int>` len=-1 **)** |
  221. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  222. | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`to_ascii<class_String_method_to_ascii>` **(** **)** |
  223. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  224. | :ref:`float<class_float>` | :ref:`to_float<class_String_method_to_float>` **(** **)** |
  225. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  226. | :ref:`int<class_int>` | :ref:`to_int<class_String_method_to_int>` **(** **)** |
  227. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  228. | :ref:`String<class_String>` | :ref:`to_lower<class_String_method_to_lower>` **(** **)** |
  229. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  230. | :ref:`String<class_String>` | :ref:`to_upper<class_String_method_to_upper>` **(** **)** |
  231. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  232. | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`to_utf8<class_String_method_to_utf8>` **(** **)** |
  233. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  234. | :ref:`PoolByteArray<class_PoolByteArray>` | :ref:`to_wchar<class_String_method_to_wchar>` **(** **)** |
  235. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  236. | :ref:`String<class_String>` | :ref:`trim_prefix<class_String_method_trim_prefix>` **(** :ref:`String<class_String>` prefix **)** |
  237. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  238. | :ref:`String<class_String>` | :ref:`trim_suffix<class_String_method_trim_suffix>` **(** :ref:`String<class_String>` suffix **)** |
  239. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  240. | :ref:`String<class_String>` | :ref:`validate_node_name<class_String_method_validate_node_name>` **(** **)** |
  241. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  242. | :ref:`String<class_String>` | :ref:`xml_escape<class_String_method_xml_escape>` **(** **)** |
  243. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  244. | :ref:`String<class_String>` | :ref:`xml_unescape<class_String_method_xml_unescape>` **(** **)** |
  245. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  246. .. rst-class:: classref-section-separator
  247. ----
  248. .. rst-class:: classref-descriptions-group
  249. Method Descriptions
  250. -------------------
  251. .. _class_String_method_String:
  252. .. rst-class:: classref-method
  253. :ref:`String<class_String>` **String** **(** :ref:`bool<class_bool>` from **)**
  254. Constructs a new String from the given :ref:`bool<class_bool>`.
  255. .. rst-class:: classref-item-separator
  256. ----
  257. .. rst-class:: classref-method
  258. :ref:`String<class_String>` **String** **(** :ref:`int<class_int>` from **)**
  259. Constructs a new String from the given :ref:`int<class_int>`.
  260. .. rst-class:: classref-item-separator
  261. ----
  262. .. rst-class:: classref-method
  263. :ref:`String<class_String>` **String** **(** :ref:`float<class_float>` from **)**
  264. Constructs a new String from the given :ref:`float<class_float>`.
  265. .. rst-class:: classref-item-separator
  266. ----
  267. .. rst-class:: classref-method
  268. :ref:`String<class_String>` **String** **(** :ref:`Vector2<class_Vector2>` from **)**
  269. Constructs a new String from the given :ref:`Vector2<class_Vector2>`.
  270. .. rst-class:: classref-item-separator
  271. ----
  272. .. rst-class:: classref-method
  273. :ref:`String<class_String>` **String** **(** :ref:`Rect2<class_Rect2>` from **)**
  274. Constructs a new String from the given :ref:`Rect2<class_Rect2>`.
  275. .. rst-class:: classref-item-separator
  276. ----
  277. .. rst-class:: classref-method
  278. :ref:`String<class_String>` **String** **(** :ref:`Vector3<class_Vector3>` from **)**
  279. Constructs a new String from the given :ref:`Vector3<class_Vector3>`.
  280. .. rst-class:: classref-item-separator
  281. ----
  282. .. rst-class:: classref-method
  283. :ref:`String<class_String>` **String** **(** :ref:`Transform2D<class_Transform2D>` from **)**
  284. Constructs a new String from the given :ref:`Transform2D<class_Transform2D>`.
  285. .. rst-class:: classref-item-separator
  286. ----
  287. .. rst-class:: classref-method
  288. :ref:`String<class_String>` **String** **(** :ref:`Plane<class_Plane>` from **)**
  289. Constructs a new String from the given :ref:`Plane<class_Plane>`.
  290. .. rst-class:: classref-item-separator
  291. ----
  292. .. rst-class:: classref-method
  293. :ref:`String<class_String>` **String** **(** :ref:`Quat<class_Quat>` from **)**
  294. Constructs a new String from the given :ref:`Quat<class_Quat>`.
  295. .. rst-class:: classref-item-separator
  296. ----
  297. .. rst-class:: classref-method
  298. :ref:`String<class_String>` **String** **(** :ref:`AABB<class_AABB>` from **)**
  299. Constructs a new String from the given :ref:`AABB<class_AABB>`.
  300. .. rst-class:: classref-item-separator
  301. ----
  302. .. rst-class:: classref-method
  303. :ref:`String<class_String>` **String** **(** :ref:`Basis<class_Basis>` from **)**
  304. Constructs a new String from the given :ref:`Basis<class_Basis>`.
  305. .. rst-class:: classref-item-separator
  306. ----
  307. .. rst-class:: classref-method
  308. :ref:`String<class_String>` **String** **(** :ref:`Transform<class_Transform>` from **)**
  309. Constructs a new String from the given :ref:`Transform<class_Transform>`.
  310. .. rst-class:: classref-item-separator
  311. ----
  312. .. rst-class:: classref-method
  313. :ref:`String<class_String>` **String** **(** :ref:`Color<class_Color>` from **)**
  314. Constructs a new String from the given :ref:`Color<class_Color>`.
  315. .. rst-class:: classref-item-separator
  316. ----
  317. .. rst-class:: classref-method
  318. :ref:`String<class_String>` **String** **(** :ref:`NodePath<class_NodePath>` from **)**
  319. Constructs a new String from the given :ref:`NodePath<class_NodePath>`.
  320. .. rst-class:: classref-item-separator
  321. ----
  322. .. rst-class:: classref-method
  323. :ref:`String<class_String>` **String** **(** :ref:`RID<class_RID>` from **)**
  324. Constructs a new String from the given :ref:`RID<class_RID>`.
  325. .. rst-class:: classref-item-separator
  326. ----
  327. .. rst-class:: classref-method
  328. :ref:`String<class_String>` **String** **(** :ref:`Dictionary<class_Dictionary>` from **)**
  329. Constructs a new String from the given :ref:`Dictionary<class_Dictionary>`.
  330. .. rst-class:: classref-item-separator
  331. ----
  332. .. rst-class:: classref-method
  333. :ref:`String<class_String>` **String** **(** :ref:`Array<class_Array>` from **)**
  334. Constructs a new String from the given :ref:`Array<class_Array>`.
  335. .. rst-class:: classref-item-separator
  336. ----
  337. .. rst-class:: classref-method
  338. :ref:`String<class_String>` **String** **(** :ref:`PoolByteArray<class_PoolByteArray>` from **)**
  339. Constructs a new String from the given :ref:`PoolByteArray<class_PoolByteArray>`.
  340. .. rst-class:: classref-item-separator
  341. ----
  342. .. rst-class:: classref-method
  343. :ref:`String<class_String>` **String** **(** :ref:`PoolIntArray<class_PoolIntArray>` from **)**
  344. Constructs a new String from the given :ref:`PoolIntArray<class_PoolIntArray>`.
  345. .. rst-class:: classref-item-separator
  346. ----
  347. .. rst-class:: classref-method
  348. :ref:`String<class_String>` **String** **(** :ref:`PoolRealArray<class_PoolRealArray>` from **)**
  349. Constructs a new String from the given :ref:`PoolRealArray<class_PoolRealArray>`.
  350. .. rst-class:: classref-item-separator
  351. ----
  352. .. rst-class:: classref-method
  353. :ref:`String<class_String>` **String** **(** :ref:`PoolStringArray<class_PoolStringArray>` from **)**
  354. Constructs a new String from the given :ref:`PoolStringArray<class_PoolStringArray>`.
  355. .. rst-class:: classref-item-separator
  356. ----
  357. .. rst-class:: classref-method
  358. :ref:`String<class_String>` **String** **(** :ref:`PoolVector2Array<class_PoolVector2Array>` from **)**
  359. Constructs a new String from the given :ref:`PoolVector2Array<class_PoolVector2Array>`.
  360. .. rst-class:: classref-item-separator
  361. ----
  362. .. rst-class:: classref-method
  363. :ref:`String<class_String>` **String** **(** :ref:`PoolVector3Array<class_PoolVector3Array>` from **)**
  364. Constructs a new String from the given :ref:`PoolVector3Array<class_PoolVector3Array>`.
  365. .. rst-class:: classref-item-separator
  366. ----
  367. .. rst-class:: classref-method
  368. :ref:`String<class_String>` **String** **(** :ref:`PoolColorArray<class_PoolColorArray>` from **)**
  369. Constructs a new String from the given :ref:`PoolColorArray<class_PoolColorArray>`.
  370. .. rst-class:: classref-item-separator
  371. ----
  372. .. _class_String_method_begins_with:
  373. .. rst-class:: classref-method
  374. :ref:`bool<class_bool>` **begins_with** **(** :ref:`String<class_String>` text **)**
  375. Returns ``true`` if the string begins with the given string.
  376. .. rst-class:: classref-item-separator
  377. ----
  378. .. _class_String_method_bigrams:
  379. .. rst-class:: classref-method
  380. :ref:`PoolStringArray<class_PoolStringArray>` **bigrams** **(** **)**
  381. Returns an array containing the bigrams (pairs of consecutive letters) of this string.
  382. ::
  383. print("Bigrams".bigrams()) # Prints "[Bi, ig, gr, ra, am, ms]"
  384. .. rst-class:: classref-item-separator
  385. ----
  386. .. _class_String_method_c_escape:
  387. .. rst-class:: classref-method
  388. :ref:`String<class_String>` **c_escape** **(** **)**
  389. Returns a copy of the string with special characters escaped using the C language standard.
  390. .. rst-class:: classref-item-separator
  391. ----
  392. .. _class_String_method_c_unescape:
  393. .. rst-class:: classref-method
  394. :ref:`String<class_String>` **c_unescape** **(** **)**
  395. Returns a copy of the string with escaped characters replaced by their meanings. Supported escape sequences are ``\'``, ``\"``, ``\?``, ``\\``, ``\a``, ``\b``, ``\f``, ``\n``, ``\r``, ``\t``, ``\v``.
  396. \ **Note:** Unlike the GDScript parser, this method doesn't support the ``\uXXXX`` escape sequence.
  397. .. rst-class:: classref-item-separator
  398. ----
  399. .. _class_String_method_capitalize:
  400. .. rst-class:: classref-method
  401. :ref:`String<class_String>` **capitalize** **(** **)**
  402. Changes the case of some letters. Replaces underscores with spaces, adds spaces before in-word uppercase characters, converts all letters to lowercase, then capitalizes the first letter and every letter following a space character. For ``capitalize camelCase mixed_with_underscores``, it will return ``Capitalize Camel Case Mixed With Underscores``.
  403. .. rst-class:: classref-item-separator
  404. ----
  405. .. _class_String_method_casecmp_to:
  406. .. rst-class:: classref-method
  407. :ref:`int<class_int>` **casecmp_to** **(** :ref:`String<class_String>` to **)**
  408. Performs a case-sensitive comparison to another string. Returns ``-1`` if less than, ``1`` if greater than, or ``0`` if equal. "less than" or "greater than" are determined by the `Unicode code points <https://en.wikipedia.org/wiki/List_of_Unicode_characters>`__ of each string, which roughly matches the alphabetical order.
  409. \ **Behavior with different string lengths:** Returns ``1`` if the "base" string is longer than the ``to`` string or ``-1`` if the "base" string is shorter than the ``to`` string. Keep in mind this length is determined by the number of Unicode codepoints, *not* the actual visible characters.
  410. \ **Behavior with empty strings:** Returns ``-1`` if the "base" string is empty, ``1`` if the ``to`` string is empty or ``0`` if both strings are empty.
  411. To get a boolean result from a string comparison, use the ``==`` operator instead. See also :ref:`nocasecmp_to<class_String_method_nocasecmp_to>`.
  412. .. rst-class:: classref-item-separator
  413. ----
  414. .. _class_String_method_count:
  415. .. rst-class:: classref-method
  416. :ref:`int<class_int>` **count** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=0 **)**
  417. Returns the number of occurrences of substring ``what`` between ``from`` and ``to`` positions. If ``from`` and ``to`` equals 0 the whole string will be used. If only ``to`` equals 0 the remained substring will be used.
  418. .. rst-class:: classref-item-separator
  419. ----
  420. .. _class_String_method_countn:
  421. .. rst-class:: classref-method
  422. :ref:`int<class_int>` **countn** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0, :ref:`int<class_int>` to=0 **)**
  423. Returns the number of occurrences of substring ``what`` (ignoring case) between ``from`` and ``to`` positions. If ``from`` and ``to`` equals 0 the whole string will be used. If only ``to`` equals 0 the remained substring will be used.
  424. .. rst-class:: classref-item-separator
  425. ----
  426. .. _class_String_method_dedent:
  427. .. rst-class:: classref-method
  428. :ref:`String<class_String>` **dedent** **(** **)**
  429. Returns a copy of the string with indentation (leading tabs and spaces) removed. See also :ref:`indent<class_String_method_indent>` to add indentation.
  430. .. rst-class:: classref-item-separator
  431. ----
  432. .. _class_String_method_empty:
  433. .. rst-class:: classref-method
  434. :ref:`bool<class_bool>` **empty** **(** **)**
  435. Returns ``true`` if the length of the string equals ``0``.
  436. .. rst-class:: classref-item-separator
  437. ----
  438. .. _class_String_method_ends_with:
  439. .. rst-class:: classref-method
  440. :ref:`bool<class_bool>` **ends_with** **(** :ref:`String<class_String>` text **)**
  441. Returns ``true`` if the string ends with the given string.
  442. .. rst-class:: classref-item-separator
  443. ----
  444. .. _class_String_method_erase:
  445. .. rst-class:: classref-method
  446. void **erase** **(** :ref:`int<class_int>` position, :ref:`int<class_int>` chars **)**
  447. Erases ``chars`` characters from the string starting from ``position``.
  448. .. rst-class:: classref-item-separator
  449. ----
  450. .. _class_String_method_find:
  451. .. rst-class:: classref-method
  452. :ref:`int<class_int>` **find** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)**
  453. Finds the first occurrence of a substring. Returns the starting position of the substring or ``-1`` if not found. Optionally, the initial search index can be passed.
  454. \ **Note:** If you just want to know whether a string contains a substring, use the ``in`` operator as follows:
  455. ::
  456. # Will evaluate to `false`.
  457. if "i" in "team":
  458. pass
  459. .. rst-class:: classref-item-separator
  460. ----
  461. .. _class_String_method_find_last:
  462. .. rst-class:: classref-method
  463. :ref:`int<class_int>` **find_last** **(** :ref:`String<class_String>` what **)**
  464. Finds the last occurrence of a substring. Returns the starting position of the substring or ``-1`` if not found.
  465. .. rst-class:: classref-item-separator
  466. ----
  467. .. _class_String_method_findn:
  468. .. rst-class:: classref-method
  469. :ref:`int<class_int>` **findn** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=0 **)**
  470. Finds the first occurrence of a substring, ignoring case. Returns the starting position of the substring or ``-1`` if not found. Optionally, the initial search index can be passed.
  471. .. rst-class:: classref-item-separator
  472. ----
  473. .. _class_String_method_format:
  474. .. rst-class:: classref-method
  475. :ref:`String<class_String>` **format** **(** :ref:`Variant<class_Variant>` values, :ref:`String<class_String>` placeholder="{_}" **)**
  476. Formats the string by replacing all occurrences of ``placeholder`` with the elements of ``values``.
  477. \ ``values`` can be a :ref:`Dictionary<class_Dictionary>` or an :ref:`Array<class_Array>`. Any underscores in ``placeholder`` will be replaced with the corresponding keys in advance. Array elements use their index as keys.
  478. ::
  479. # Prints: Waiting for Godot is a play by Samuel Beckett, and Godot Engine is named after it.
  480. var use_array_values = "Waiting for {0} is a play by {1}, and {0} Engine is named after it."
  481. print(use_array_values.format(["Godot", "Samuel Beckett"]))
  482. # Prints: User 42 is Godot.
  483. print("User {id} is {name}.".format({"id": 42, "name": "Godot"}))
  484. Some additional handling is performed when ``values`` is an array. If ``placeholder`` does not contain an underscore, the elements of the array will be used to replace one occurrence of the placeholder in turn; If an array element is another 2-element array, it'll be interpreted as a key-value pair.
  485. ::
  486. # Prints: User 42 is Godot.
  487. print("User {} is {}.".format([42, "Godot"], "{}"))
  488. print("User {id} is {name}.".format([["id", 42], ["name", "Godot"]]))
  489. .. rst-class:: classref-item-separator
  490. ----
  491. .. _class_String_method_get_base_dir:
  492. .. rst-class:: classref-method
  493. :ref:`String<class_String>` **get_base_dir** **(** **)**
  494. If the string is a valid file path, returns the base directory name.
  495. .. rst-class:: classref-item-separator
  496. ----
  497. .. _class_String_method_get_basename:
  498. .. rst-class:: classref-method
  499. :ref:`String<class_String>` **get_basename** **(** **)**
  500. If the string is a valid file path, returns the full file path without the extension.
  501. .. rst-class:: classref-item-separator
  502. ----
  503. .. _class_String_method_get_extension:
  504. .. rst-class:: classref-method
  505. :ref:`String<class_String>` **get_extension** **(** **)**
  506. Returns the extension without the leading period character (``.``) if the string is a valid file name or path. If the string does not contain an extension, returns an empty string instead.
  507. ::
  508. print("/path/to/file.txt".get_extension()) # "txt"
  509. print("file.txt".get_extension()) # "txt"
  510. print("file.sample.txt".get_extension()) # "txt"
  511. print(".txt".get_extension()) # "txt"
  512. print("file.txt.".get_extension()) # "" (empty string)
  513. print("file.txt..".get_extension()) # "" (empty string)
  514. print("txt".get_extension()) # "" (empty string)
  515. print("".get_extension()) # "" (empty string)
  516. .. rst-class:: classref-item-separator
  517. ----
  518. .. _class_String_method_get_file:
  519. .. rst-class:: classref-method
  520. :ref:`String<class_String>` **get_file** **(** **)**
  521. If the string is a valid file path, returns the filename.
  522. .. rst-class:: classref-item-separator
  523. ----
  524. .. _class_String_method_get_slice:
  525. .. rst-class:: classref-method
  526. :ref:`String<class_String>` **get_slice** **(** :ref:`String<class_String>` delimiter, :ref:`int<class_int>` slice **)**
  527. Splits a string using a ``delimiter`` and returns a substring at index ``slice``. Returns the original string if ``delimiter`` does not occur in the string. Returns an empty string if the index doesn't exist.
  528. This is a more performant alternative to :ref:`split<class_String_method_split>` for cases when you need only one element from the array at a fixed index.
  529. Example:
  530. ::
  531. print("i/am/example/string".get_slice("/", 2)) # Prints 'example'.
  532. .. rst-class:: classref-item-separator
  533. ----
  534. .. _class_String_method_hash:
  535. .. rst-class:: classref-method
  536. :ref:`int<class_int>` **hash** **(** **)**
  537. Returns the 32-bit hash value representing the string's contents.
  538. \ **Note:** **String**\ s with equal content will always produce identical hash values. However, the reverse is not true. Returning identical hash values does *not* imply the strings are equal, because different strings can have identical hash values due to hash collisions.
  539. .. rst-class:: classref-item-separator
  540. ----
  541. .. _class_String_method_hex_to_int:
  542. .. rst-class:: classref-method
  543. :ref:`int<class_int>` **hex_to_int** **(** **)**
  544. Converts a string containing a hexadecimal number into an integer. Hexadecimal strings are expected to be prefixed with "``0x``" otherwise ``0`` is returned.
  545. ::
  546. print("0xff".hex_to_int()) # Print "255"
  547. .. rst-class:: classref-item-separator
  548. ----
  549. .. _class_String_method_http_escape:
  550. .. rst-class:: classref-method
  551. :ref:`String<class_String>` **http_escape** **(** **)**
  552. Escapes (encodes) a string to URL friendly format. Also referred to as 'URL encode'.
  553. ::
  554. print("https://example.org/?escaped=" + "Godot Engine:'docs'".http_escape())
  555. .. rst-class:: classref-item-separator
  556. ----
  557. .. _class_String_method_http_unescape:
  558. .. rst-class:: classref-method
  559. :ref:`String<class_String>` **http_unescape** **(** **)**
  560. Unescapes (decodes) a string in URL encoded format. Also referred to as 'URL decode'.
  561. ::
  562. print("https://example.org/?escaped=" + "Godot%20Engine%3A%27docs%27".http_unescape())
  563. .. rst-class:: classref-item-separator
  564. ----
  565. .. _class_String_method_humanize_size:
  566. .. rst-class:: classref-method
  567. :ref:`String<class_String>` **humanize_size** **(** :ref:`int<class_int>` size **)**
  568. Converts ``size`` represented as number of bytes to human-readable format using internationalized set of data size units, namely: B, KiB, MiB, GiB, TiB, PiB, EiB. Note that the next smallest unit is picked automatically to hold at most 1024 units.
  569. ::
  570. var bytes = 133790307
  571. var size = String.humanize_size(bytes)
  572. print(size) # prints "127.5 MiB"
  573. .. rst-class:: classref-item-separator
  574. ----
  575. .. _class_String_method_indent:
  576. .. rst-class:: classref-method
  577. :ref:`String<class_String>` **indent** **(** :ref:`String<class_String>` prefix **)**
  578. Returns a copy of the string with lines indented with ``prefix``.
  579. For example, the string can be indented with two tabs using ``"\t\t"``, or four spaces using ``" "``. The prefix can be any string so it can also be used to comment out strings with e.g. ``"# "``. See also :ref:`dedent<class_String_method_dedent>` to remove indentation.
  580. \ **Note:** Empty lines are kept empty.
  581. .. rst-class:: classref-item-separator
  582. ----
  583. .. _class_String_method_insert:
  584. .. rst-class:: classref-method
  585. :ref:`String<class_String>` **insert** **(** :ref:`int<class_int>` position, :ref:`String<class_String>` what **)**
  586. Returns a copy of the string with the substring ``what`` inserted at the given position.
  587. .. rst-class:: classref-item-separator
  588. ----
  589. .. _class_String_method_is_abs_path:
  590. .. rst-class:: classref-method
  591. :ref:`bool<class_bool>` **is_abs_path** **(** **)**
  592. If the string is a path to a file or directory, returns ``true`` if the path is absolute.
  593. .. rst-class:: classref-item-separator
  594. ----
  595. .. _class_String_method_is_rel_path:
  596. .. rst-class:: classref-method
  597. :ref:`bool<class_bool>` **is_rel_path** **(** **)**
  598. If the string is a path to a file or directory, returns ``true`` if the path is relative.
  599. .. rst-class:: classref-item-separator
  600. ----
  601. .. _class_String_method_is_subsequence_of:
  602. .. rst-class:: classref-method
  603. :ref:`bool<class_bool>` **is_subsequence_of** **(** :ref:`String<class_String>` text **)**
  604. Returns ``true`` if this string is a subsequence of the given string.
  605. .. rst-class:: classref-item-separator
  606. ----
  607. .. _class_String_method_is_subsequence_ofi:
  608. .. rst-class:: classref-method
  609. :ref:`bool<class_bool>` **is_subsequence_ofi** **(** :ref:`String<class_String>` text **)**
  610. Returns ``true`` if this string is a subsequence of the given string, without considering case.
  611. .. rst-class:: classref-item-separator
  612. ----
  613. .. _class_String_method_is_valid_filename:
  614. .. rst-class:: classref-method
  615. :ref:`bool<class_bool>` **is_valid_filename** **(** **)**
  616. Returns ``true`` if this string is free from characters that aren't allowed in file names, those being:
  617. \ ``: / \ ? * " | % < >``
  618. .. rst-class:: classref-item-separator
  619. ----
  620. .. _class_String_method_is_valid_float:
  621. .. rst-class:: classref-method
  622. :ref:`bool<class_bool>` **is_valid_float** **(** **)**
  623. Returns ``true`` if this string contains a valid float. This is inclusive of integers, and also supports exponents:
  624. ::
  625. print("1.7".is_valid_float()) # Prints "True"
  626. print("24".is_valid_float()) # Prints "True"
  627. print("7e3".is_valid_float()) # Prints "True"
  628. print("Hello".is_valid_float()) # Prints "False"
  629. .. rst-class:: classref-item-separator
  630. ----
  631. .. _class_String_method_is_valid_hex_number:
  632. .. rst-class:: classref-method
  633. :ref:`bool<class_bool>` **is_valid_hex_number** **(** :ref:`bool<class_bool>` with_prefix=false **)**
  634. Returns ``true`` if this string contains a valid hexadecimal number. If ``with_prefix`` is ``true``, then a validity of the hexadecimal number is determined by ``0x`` prefix, for instance: ``0xDEADC0DE``.
  635. .. rst-class:: classref-item-separator
  636. ----
  637. .. _class_String_method_is_valid_html_color:
  638. .. rst-class:: classref-method
  639. :ref:`bool<class_bool>` **is_valid_html_color** **(** **)**
  640. Returns ``true`` if this string contains a valid color in hexadecimal HTML notation. Other HTML notations such as named colors or ``hsl()`` colors aren't considered valid by this method and will return ``false``.
  641. .. rst-class:: classref-item-separator
  642. ----
  643. .. _class_String_method_is_valid_identifier:
  644. .. rst-class:: classref-method
  645. :ref:`bool<class_bool>` **is_valid_identifier** **(** **)**
  646. Returns ``true`` if this string is a valid identifier. A valid identifier may contain only letters, digits and underscores (``_``) and the first character may not be a digit.
  647. ::
  648. print("good_ident_1".is_valid_identifier()) # Prints "True"
  649. print("1st_bad_ident".is_valid_identifier()) # Prints "False"
  650. print("bad_ident_#2".is_valid_identifier()) # Prints "False"
  651. .. rst-class:: classref-item-separator
  652. ----
  653. .. _class_String_method_is_valid_integer:
  654. .. rst-class:: classref-method
  655. :ref:`bool<class_bool>` **is_valid_integer** **(** **)**
  656. Returns ``true`` if this string contains a valid integer.
  657. ::
  658. print("7".is_valid_integer()) # Prints "True"
  659. print("14.6".is_valid_integer()) # Prints "False"
  660. print("L".is_valid_integer()) # Prints "False"
  661. print("+3".is_valid_integer()) # Prints "True"
  662. print("-12".is_valid_integer()) # Prints "True"
  663. .. rst-class:: classref-item-separator
  664. ----
  665. .. _class_String_method_is_valid_ip_address:
  666. .. rst-class:: classref-method
  667. :ref:`bool<class_bool>` **is_valid_ip_address** **(** **)**
  668. Returns ``true`` if this string contains only a well-formatted IPv4 or IPv6 address. This method considers `reserved IP addresses <https://en.wikipedia.org/wiki/Reserved_IP_addresses>`__ such as ``0.0.0.0`` as valid.
  669. .. rst-class:: classref-item-separator
  670. ----
  671. .. _class_String_method_join:
  672. .. rst-class:: classref-method
  673. :ref:`String<class_String>` **join** **(** :ref:`PoolStringArray<class_PoolStringArray>` parts **)**
  674. Return a **String** which is the concatenation of the ``parts``. The separator between elements is the string providing this method.
  675. Example:
  676. ::
  677. print(", ".join(["One", "Two", "Three", "Four"]))
  678. .. rst-class:: classref-item-separator
  679. ----
  680. .. _class_String_method_json_escape:
  681. .. rst-class:: classref-method
  682. :ref:`String<class_String>` **json_escape** **(** **)**
  683. Returns a copy of the string with special characters escaped using the JSON standard.
  684. .. rst-class:: classref-item-separator
  685. ----
  686. .. _class_String_method_left:
  687. .. rst-class:: classref-method
  688. :ref:`String<class_String>` **left** **(** :ref:`int<class_int>` position **)**
  689. Returns a number of characters from the left of the string.
  690. .. rst-class:: classref-item-separator
  691. ----
  692. .. _class_String_method_length:
  693. .. rst-class:: classref-method
  694. :ref:`int<class_int>` **length** **(** **)**
  695. Returns the string's amount of characters.
  696. .. rst-class:: classref-item-separator
  697. ----
  698. .. _class_String_method_lstrip:
  699. .. rst-class:: classref-method
  700. :ref:`String<class_String>` **lstrip** **(** :ref:`String<class_String>` chars **)**
  701. Returns a copy of the string with characters removed from the left. The ``chars`` argument is a string specifying the set of characters to be removed.
  702. \ **Note:** The ``chars`` is not a prefix. See :ref:`trim_prefix<class_String_method_trim_prefix>` method that will remove a single prefix string rather than a set of characters.
  703. .. rst-class:: classref-item-separator
  704. ----
  705. .. _class_String_method_match:
  706. .. rst-class:: classref-method
  707. :ref:`bool<class_bool>` **match** **(** :ref:`String<class_String>` expr **)**
  708. Does a simple expression match (also called "glob" or "globbing"), where ``*`` matches zero or more arbitrary characters and ``?`` matches any single character except a period (``.``). An empty string or empty expression always evaluates to ``false``.
  709. .. rst-class:: classref-item-separator
  710. ----
  711. .. _class_String_method_matchn:
  712. .. rst-class:: classref-method
  713. :ref:`bool<class_bool>` **matchn** **(** :ref:`String<class_String>` expr **)**
  714. Does a simple **case-insensitive** expression match, where ``*`` matches zero or more arbitrary characters and ``?`` matches any single character except a period (``.``). An empty string or empty expression always evaluates to ``false``.
  715. .. rst-class:: classref-item-separator
  716. ----
  717. .. _class_String_method_md5_buffer:
  718. .. rst-class:: classref-method
  719. :ref:`PoolByteArray<class_PoolByteArray>` **md5_buffer** **(** **)**
  720. Returns the MD5 hash of the string as an array of bytes.
  721. .. rst-class:: classref-item-separator
  722. ----
  723. .. _class_String_method_md5_text:
  724. .. rst-class:: classref-method
  725. :ref:`String<class_String>` **md5_text** **(** **)**
  726. Returns the MD5 hash of the string as a string.
  727. .. rst-class:: classref-item-separator
  728. ----
  729. .. _class_String_method_naturalnocasecmp_to:
  730. .. rst-class:: classref-method
  731. :ref:`int<class_int>` **naturalnocasecmp_to** **(** :ref:`String<class_String>` to **)**
  732. Performs a case-insensitive *natural order* comparison to another string. Returns ``-1`` if less than, ``1`` if greater than, or ``0`` if equal. "less than" or "greater than" are determined by the `Unicode code points <https://en.wikipedia.org/wiki/List_of_Unicode_characters>`__ of each string, which roughly matches the alphabetical order. Internally, lowercase characters will be converted to uppercase during the comparison.
  733. When used for sorting, natural order comparison will order suites of numbers as expected by most people. If you sort the numbers from 1 to 10 using natural order, you will get ``[1, 2, 3, ...]`` instead of ``[1, 10, 2, 3, ...]``.
  734. \ **Behavior with different string lengths:** Returns ``1`` if the "base" string is longer than the ``to`` string or ``-1`` if the "base" string is shorter than the ``to`` string. Keep in mind this length is determined by the number of Unicode codepoints, *not* the actual visible characters.
  735. \ **Behavior with empty strings:** Returns ``-1`` if the "base" string is empty, ``1`` if the ``to`` string is empty or ``0`` if both strings are empty.
  736. To get a boolean result from a string comparison, use the ``==`` operator instead. See also :ref:`nocasecmp_to<class_String_method_nocasecmp_to>` and :ref:`casecmp_to<class_String_method_casecmp_to>`.
  737. .. rst-class:: classref-item-separator
  738. ----
  739. .. _class_String_method_nocasecmp_to:
  740. .. rst-class:: classref-method
  741. :ref:`int<class_int>` **nocasecmp_to** **(** :ref:`String<class_String>` to **)**
  742. Performs a case-insensitive comparison to another string. Returns ``-1`` if less than, ``1`` if greater than, or ``0`` if equal. "less than" or "greater than" are determined by the `Unicode code points <https://en.wikipedia.org/wiki/List_of_Unicode_characters>`__ of each string, which roughly matches the alphabetical order. Internally, lowercase characters will be converted to uppercase during the comparison.
  743. \ **Behavior with different string lengths:** Returns ``1`` if the "base" string is longer than the ``to`` string or ``-1`` if the "base" string is shorter than the ``to`` string. Keep in mind this length is determined by the number of Unicode codepoints, *not* the actual visible characters.
  744. \ **Behavior with empty strings:** Returns ``-1`` if the "base" string is empty, ``1`` if the ``to`` string is empty or ``0`` if both strings are empty.
  745. To get a boolean result from a string comparison, use the ``==`` operator instead. See also :ref:`casecmp_to<class_String_method_casecmp_to>`.
  746. .. rst-class:: classref-item-separator
  747. ----
  748. .. _class_String_method_ord_at:
  749. .. rst-class:: classref-method
  750. :ref:`int<class_int>` **ord_at** **(** :ref:`int<class_int>` at **)**
  751. Returns the character code at position ``at``.
  752. .. rst-class:: classref-item-separator
  753. ----
  754. .. _class_String_method_pad_decimals:
  755. .. rst-class:: classref-method
  756. :ref:`String<class_String>` **pad_decimals** **(** :ref:`int<class_int>` digits **)**
  757. Formats a number to have an exact number of ``digits`` after the decimal point.
  758. .. rst-class:: classref-item-separator
  759. ----
  760. .. _class_String_method_pad_zeros:
  761. .. rst-class:: classref-method
  762. :ref:`String<class_String>` **pad_zeros** **(** :ref:`int<class_int>` digits **)**
  763. Formats a number to have an exact number of ``digits`` before the decimal point.
  764. .. rst-class:: classref-item-separator
  765. ----
  766. .. _class_String_method_percent_decode:
  767. .. rst-class:: classref-method
  768. :ref:`String<class_String>` **percent_decode** **(** **)**
  769. Decode a percent-encoded string (also called URI-encoded string). See also :ref:`percent_encode<class_String_method_percent_encode>`.
  770. .. rst-class:: classref-item-separator
  771. ----
  772. .. _class_String_method_percent_encode:
  773. .. rst-class:: classref-method
  774. :ref:`String<class_String>` **percent_encode** **(** **)**
  775. Percent-encodes a string (also called URI-encoded string). Encodes parameters in a URL when sending a HTTP GET request (and bodies of form-urlencoded POST requests). See also :ref:`percent_decode<class_String_method_percent_decode>`.
  776. .. rst-class:: classref-item-separator
  777. ----
  778. .. _class_String_method_plus_file:
  779. .. rst-class:: classref-method
  780. :ref:`String<class_String>` **plus_file** **(** :ref:`String<class_String>` file **)**
  781. If the string is a path, this concatenates ``file`` at the end of the string as a subpath. E.g. ``"this/is".plus_file("path") == "this/is/path"``.
  782. .. rst-class:: classref-item-separator
  783. ----
  784. .. _class_String_method_repeat:
  785. .. rst-class:: classref-method
  786. :ref:`String<class_String>` **repeat** **(** :ref:`int<class_int>` count **)**
  787. Returns original string repeated a number of times. The number of repetitions is given by the argument.
  788. .. rst-class:: classref-item-separator
  789. ----
  790. .. _class_String_method_replace:
  791. .. rst-class:: classref-method
  792. :ref:`String<class_String>` **replace** **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)**
  793. Replaces occurrences of a case-sensitive substring with the given one inside the string.
  794. .. rst-class:: classref-item-separator
  795. ----
  796. .. _class_String_method_replacen:
  797. .. rst-class:: classref-method
  798. :ref:`String<class_String>` **replacen** **(** :ref:`String<class_String>` what, :ref:`String<class_String>` forwhat **)**
  799. Replaces occurrences of a case-insensitive substring with the given one inside the string.
  800. .. rst-class:: classref-item-separator
  801. ----
  802. .. _class_String_method_rfind:
  803. .. rst-class:: classref-method
  804. :ref:`int<class_int>` **rfind** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)**
  805. Performs a case-sensitive search for a substring, but starts from the end of the string instead of the beginning.
  806. .. rst-class:: classref-item-separator
  807. ----
  808. .. _class_String_method_rfindn:
  809. .. rst-class:: classref-method
  810. :ref:`int<class_int>` **rfindn** **(** :ref:`String<class_String>` what, :ref:`int<class_int>` from=-1 **)**
  811. Performs a case-insensitive search for a substring, but starts from the end of the string instead of the beginning.
  812. .. rst-class:: classref-item-separator
  813. ----
  814. .. _class_String_method_right:
  815. .. rst-class:: classref-method
  816. :ref:`String<class_String>` **right** **(** :ref:`int<class_int>` position **)**
  817. Returns the right side of the string from a given position.
  818. .. rst-class:: classref-item-separator
  819. ----
  820. .. _class_String_method_rsplit:
  821. .. rst-class:: classref-method
  822. :ref:`PoolStringArray<class_PoolStringArray>` **rsplit** **(** :ref:`String<class_String>` delimiter, :ref:`bool<class_bool>` allow_empty=true, :ref:`int<class_int>` maxsplit=0 **)**
  823. Splits the string by a ``delimiter`` string and returns an array of the substrings, starting from right.
  824. The splits in the returned array are sorted in the same order as the original string, from left to right.
  825. If ``allow_empty`` is ``true``, and there are two adjacent delimiters in the string, it will add an empty string to the array of substrings at this position.
  826. If ``maxsplit`` is specified, it defines the number of splits to do from the right up to ``maxsplit``. The default value of 0 means that all items are split, thus giving the same result as :ref:`split<class_String_method_split>`.
  827. Example:
  828. ::
  829. var some_string = "One,Two,Three,Four"
  830. var some_array = some_string.rsplit(",", true, 1)
  831. print(some_array.size()) # Prints 2
  832. print(some_array[0]) # Prints "One,Two,Three"
  833. print(some_array[1]) # Prints "Four"
  834. .. rst-class:: classref-item-separator
  835. ----
  836. .. _class_String_method_rstrip:
  837. .. rst-class:: classref-method
  838. :ref:`String<class_String>` **rstrip** **(** :ref:`String<class_String>` chars **)**
  839. Returns a copy of the string with characters removed from the right. The ``chars`` argument is a string specifying the set of characters to be removed.
  840. \ **Note:** The ``chars`` is not a suffix. See :ref:`trim_suffix<class_String_method_trim_suffix>` method that will remove a single suffix string rather than a set of characters.
  841. .. rst-class:: classref-item-separator
  842. ----
  843. .. _class_String_method_sha1_buffer:
  844. .. rst-class:: classref-method
  845. :ref:`PoolByteArray<class_PoolByteArray>` **sha1_buffer** **(** **)**
  846. Returns the SHA-1 hash of the string as an array of bytes.
  847. .. rst-class:: classref-item-separator
  848. ----
  849. .. _class_String_method_sha1_text:
  850. .. rst-class:: classref-method
  851. :ref:`String<class_String>` **sha1_text** **(** **)**
  852. Returns the SHA-1 hash of the string as a string.
  853. .. rst-class:: classref-item-separator
  854. ----
  855. .. _class_String_method_sha256_buffer:
  856. .. rst-class:: classref-method
  857. :ref:`PoolByteArray<class_PoolByteArray>` **sha256_buffer** **(** **)**
  858. Returns the SHA-256 hash of the string as an array of bytes.
  859. .. rst-class:: classref-item-separator
  860. ----
  861. .. _class_String_method_sha256_text:
  862. .. rst-class:: classref-method
  863. :ref:`String<class_String>` **sha256_text** **(** **)**
  864. Returns the SHA-256 hash of the string as a string.
  865. .. rst-class:: classref-item-separator
  866. ----
  867. .. _class_String_method_similarity:
  868. .. rst-class:: classref-method
  869. :ref:`float<class_float>` **similarity** **(** :ref:`String<class_String>` text **)**
  870. Returns the similarity index (`Sorensen-Dice coefficient <https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient>`__) of this string compared to another. A result of 1.0 means totally similar, while 0.0 means totally dissimilar.
  871. ::
  872. print("ABC123".similarity("ABC123")) # Prints "1"
  873. print("ABC123".similarity("XYZ456")) # Prints "0"
  874. print("ABC123".similarity("123ABC")) # Prints "0.8"
  875. print("ABC123".similarity("abc123")) # Prints "0.4"
  876. .. rst-class:: classref-item-separator
  877. ----
  878. .. _class_String_method_simplify_path:
  879. .. rst-class:: classref-method
  880. :ref:`String<class_String>` **simplify_path** **(** **)**
  881. Returns a simplified canonical path.
  882. .. rst-class:: classref-item-separator
  883. ----
  884. .. _class_String_method_split:
  885. .. rst-class:: classref-method
  886. :ref:`PoolStringArray<class_PoolStringArray>` **split** **(** :ref:`String<class_String>` delimiter, :ref:`bool<class_bool>` allow_empty=true, :ref:`int<class_int>` maxsplit=0 **)**
  887. Splits the string by a ``delimiter`` string and returns an array of the substrings. The ``delimiter`` can be of any length.
  888. If ``allow_empty`` is ``true``, and there are two adjacent delimiters in the string, it will add an empty string to the array of substrings at this position.
  889. If ``maxsplit`` is specified, it defines the number of splits to do from the left up to ``maxsplit``. The default value of ``0`` means that all items are split.
  890. If you need only one element from the array at a specific index, :ref:`get_slice<class_String_method_get_slice>` is a more performant option.
  891. Example:
  892. ::
  893. var some_string = "One,Two,Three,Four"
  894. var some_array = some_string.split(",", true, 1)
  895. print(some_array.size()) # Prints 2
  896. print(some_array[0]) # Prints "One"
  897. print(some_array[1]) # Prints "Two,Three,Four"
  898. If you need to split strings with more complex rules, use the :ref:`RegEx<class_RegEx>` class instead.
  899. .. rst-class:: classref-item-separator
  900. ----
  901. .. _class_String_method_split_floats:
  902. .. rst-class:: classref-method
  903. :ref:`PoolRealArray<class_PoolRealArray>` **split_floats** **(** :ref:`String<class_String>` delimiter, :ref:`bool<class_bool>` allow_empty=true **)**
  904. Splits the string in floats by using a delimiter string and returns an array of the substrings.
  905. For example, ``"1,2.5,3"`` will return ``[1,2.5,3]`` if split by ``","``.
  906. If ``allow_empty`` is ``true``, and there are two adjacent delimiters in the string, it will add an empty string to the array of substrings at this position.
  907. .. rst-class:: classref-item-separator
  908. ----
  909. .. _class_String_method_strip_edges:
  910. .. rst-class:: classref-method
  911. :ref:`String<class_String>` **strip_edges** **(** :ref:`bool<class_bool>` left=true, :ref:`bool<class_bool>` right=true **)**
  912. Returns a copy of the string stripped of any non-printable character (including tabulations, spaces and line breaks) at the beginning and the end. The optional arguments are used to toggle stripping on the left and right edges respectively.
  913. .. rst-class:: classref-item-separator
  914. ----
  915. .. _class_String_method_strip_escapes:
  916. .. rst-class:: classref-method
  917. :ref:`String<class_String>` **strip_escapes** **(** **)**
  918. Returns a copy of the string stripped of any escape character. These include all non-printable control characters of the first page of the ASCII table (< 32), such as tabulation (``\t`` in C) and newline (``\n`` and ``\r``) characters, but not spaces.
  919. .. rst-class:: classref-item-separator
  920. ----
  921. .. _class_String_method_substr:
  922. .. rst-class:: classref-method
  923. :ref:`String<class_String>` **substr** **(** :ref:`int<class_int>` from, :ref:`int<class_int>` len=-1 **)**
  924. Returns part of the string from the position ``from`` with length ``len``. Argument ``len`` is optional and using ``-1`` will return remaining characters from given position.
  925. .. rst-class:: classref-item-separator
  926. ----
  927. .. _class_String_method_to_ascii:
  928. .. rst-class:: classref-method
  929. :ref:`PoolByteArray<class_PoolByteArray>` **to_ascii** **(** **)**
  930. Converts the String (which is a character array) to :ref:`PoolByteArray<class_PoolByteArray>` (which is an array of bytes). The conversion is faster compared to :ref:`to_utf8<class_String_method_to_utf8>`, as this method assumes that all the characters in the String are ASCII characters.
  931. .. rst-class:: classref-item-separator
  932. ----
  933. .. _class_String_method_to_float:
  934. .. rst-class:: classref-method
  935. :ref:`float<class_float>` **to_float** **(** **)**
  936. Converts a string containing a decimal number into a ``float``. The method will stop on the first non-number character except the first ``.`` (decimal point), and ``e`` which is used for exponential.
  937. ::
  938. print("12.3".to_float()) # 12.3
  939. print("1.2.3".to_float()) # 1.2
  940. print("12ab3".to_float()) # 12
  941. print("1e3".to_float()) # 1000
  942. .. rst-class:: classref-item-separator
  943. ----
  944. .. _class_String_method_to_int:
  945. .. rst-class:: classref-method
  946. :ref:`int<class_int>` **to_int** **(** **)**
  947. Converts a string containing an integer number into an ``int``. The method will remove any non-number character and stop if it encounters a ``.``.
  948. ::
  949. print("123".to_int()) # 123
  950. print("a1b2c3".to_int()) # 123
  951. print("1.2.3".to_int()) # 1
  952. .. rst-class:: classref-item-separator
  953. ----
  954. .. _class_String_method_to_lower:
  955. .. rst-class:: classref-method
  956. :ref:`String<class_String>` **to_lower** **(** **)**
  957. Returns the string converted to lowercase.
  958. .. rst-class:: classref-item-separator
  959. ----
  960. .. _class_String_method_to_upper:
  961. .. rst-class:: classref-method
  962. :ref:`String<class_String>` **to_upper** **(** **)**
  963. Returns the string converted to uppercase.
  964. .. rst-class:: classref-item-separator
  965. ----
  966. .. _class_String_method_to_utf8:
  967. .. rst-class:: classref-method
  968. :ref:`PoolByteArray<class_PoolByteArray>` **to_utf8** **(** **)**
  969. Converts the String (which is an array of characters) to :ref:`PoolByteArray<class_PoolByteArray>` (which is an array of bytes). The conversion is a bit slower than :ref:`to_ascii<class_String_method_to_ascii>`, but supports all UTF-8 characters. Therefore, you should prefer this function over :ref:`to_ascii<class_String_method_to_ascii>`.
  970. .. rst-class:: classref-item-separator
  971. ----
  972. .. _class_String_method_to_wchar:
  973. .. rst-class:: classref-method
  974. :ref:`PoolByteArray<class_PoolByteArray>` **to_wchar** **(** **)**
  975. Converts the String (which is an array of characters) to :ref:`PoolByteArray<class_PoolByteArray>` (which is an array of bytes).
  976. .. rst-class:: classref-item-separator
  977. ----
  978. .. _class_String_method_trim_prefix:
  979. .. rst-class:: classref-method
  980. :ref:`String<class_String>` **trim_prefix** **(** :ref:`String<class_String>` prefix **)**
  981. Removes a given string from the start if it starts with it or leaves the string unchanged.
  982. .. rst-class:: classref-item-separator
  983. ----
  984. .. _class_String_method_trim_suffix:
  985. .. rst-class:: classref-method
  986. :ref:`String<class_String>` **trim_suffix** **(** :ref:`String<class_String>` suffix **)**
  987. Removes a given string from the end if it ends with it or leaves the string unchanged.
  988. .. rst-class:: classref-item-separator
  989. ----
  990. .. _class_String_method_validate_node_name:
  991. .. rst-class:: classref-method
  992. :ref:`String<class_String>` **validate_node_name** **(** **)**
  993. Removes any characters from the string that are prohibited in :ref:`Node<class_Node>` names (``.`` ``:`` ``@`` ``/`` ``"``).
  994. .. rst-class:: classref-item-separator
  995. ----
  996. .. _class_String_method_xml_escape:
  997. .. rst-class:: classref-method
  998. :ref:`String<class_String>` **xml_escape** **(** **)**
  999. Returns a copy of the string with special characters escaped using the XML standard.
  1000. .. rst-class:: classref-item-separator
  1001. ----
  1002. .. _class_String_method_xml_unescape:
  1003. .. rst-class:: classref-method
  1004. :ref:`String<class_String>` **xml_unescape** **(** **)**
  1005. Returns a copy of the string with escaped characters replaced by their meanings according to the XML standard.
  1006. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  1007. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  1008. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  1009. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`