Difference between revisions of "String.split"

From GiderosMobile
(Created page with "__NOTOC__ '''Available since:''' Gideros 2022.1<br/> '''Class:''' string<br/> === Description === Splits a string into parts based on the defined separator character(s),...")
 
m (Text replacement - "</source>" to "</syntaxhighlight>")
 
(2 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
=== Description ===
 
=== Description ===
 
Splits a string into parts based on the defined separator character(s), returning a table of ordered results.
 
Splits a string into parts based on the defined separator character(s), returning a table of ordered results.
<source lang="lua">
+
<syntaxhighlight lang="lua">
 
(table) = string.split(separator)
 
(table) = string.split(separator)
</source>
+
</syntaxhighlight>
 +
 
 +
'''If an empty "slice" is located, that part will be returned as an empty string. For instance string.split("abc||def", "|") will return a table with three strings: "abc", "", and "def"'''
 +
<syntaxhighlight lang="lua">
 +
local values = input:split(",")
 +
print(values[1], values[2], values[3])
 +
</syntaxhighlight>
 +
 
 +
'''Also note that whitespace from the original string will be preserved, for example string.split("abc _ def", "_") will honor the whitespace on both sides of the _ separator. By default, the separator character is , but you can specify an alternative character or series of characters'''
 +
 
 +
=== Corner Cases ===
 +
 
 +
==== Empty String ====
 +
<syntaxhighlight lang="lua">
 +
"" --> ""
 +
</syntaxhighlight>
 +
 
 +
==== Empty Slices ====
 +
<syntaxhighlight lang="lua">
 +
"foo,,bar" --> "foo", "", "bar"
 +
",foo" --> "", "foo"
 +
"foo," --> "foo", ""
 +
"," --> "", ""
 +
",," --> "", "", ""
 +
</syntaxhighlight>
 +
 
 +
==== Whitespace Preserved ====
 +
<syntaxhighlight lang="lua">
 +
"  whitespace  " --> "  whitespace  "
 +
"foo , bar" --> "foo ", " bar"
 +
</syntaxhighlight>
 +
 
 +
==== Invalid UTF-8 ====
 +
<syntaxhighlight lang="lua">
 +
"\xFF" --> "\xFF"
 +
"\xFD,\xFE" --> "\xFD", "\xFE"
 +
</syntaxhighlight>
 +
 
 +
==== Unicode ====
 +
<syntaxhighlight lang="lua">
 +
"," --> U+FF0C FULLWIDTH COMMA
 +
"我很高兴,你呢?" --> "我很高兴", "你呢?"
 +
"•" --> U+2022 BULLET
 +
"hello•world" --> "hello", "world"
 +
</syntaxhighlight>
  
 
=== Parameters ===
 
=== Parameters ===

Latest revision as of 14:33, 13 July 2023

Available since: Gideros 2022.1
Class: string

Description

Splits a string into parts based on the defined separator character(s), returning a table of ordered results.

(table) = string.split(separator)
If an empty "slice" is located, that part will be returned as an empty string. For instance string.split("abc||def", "|") will return a table with three strings: "abc", "", and "def"
local values = input:split(",")
print(values[1], values[2], values[3])
Also note that whitespace from the original string will be preserved, for example string.split("abc _ def", "_") will honor the whitespace on both sides of the _ separator. By default, the separator character is , but you can specify an alternative character or series of characters

Corner Cases

Empty String

"" --> ""

Empty Slices

"foo,,bar" --> "foo", "", "bar"
",foo" --> "", "foo"
"foo," --> "foo", ""
"," --> "", ""
",," --> "", "", ""

Whitespace Preserved

"   whitespace   " --> "   whitespace   "
"foo , bar" --> "foo ", " bar"

Invalid UTF-8

"\xFF" --> "\xFF"
"\xFD,\xFE" --> "\xFD", "\xFE"

Unicode

"," --> U+FF0C FULLWIDTH COMMA
"我很高兴,你呢?" --> "我很高兴", "你呢?"
"•" --> U+2022 BULLET
"hello•world" --> "hello", "world"

Parameters

separator: (string) separator character(s) to be used for splitting the string optional, default value ","

Return values

Returns (table) table of ordered results