splitString: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "<code>([^ ]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^ ]*)<\/code>" to "<code>$1$2$3</code>")
m (Text replacement - "<code>([^ ]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^ ]*)<\/code>" to "<code>$1$2$3</code>")
Line 22: Line 22:
|x3= <code>"1:2:3" splitString ":"; // ["1","2","3"]</code>
|x3= <code>"1:2:3" splitString ":"; // ["1","2","3"]</code>


|x4= <code>"Japa is the best!" splitString "" [[joinString]] " "; // "J a p a  i s  t h e  b e s t !"</code>
|x4= <code>"Japa is the best!" splitString "" joinString " "; // "J a p a  i s  t h e  b e s t !"</code>


|x5= <code>_cmd = [[currentMagazineDetail]] [[player]]; //"9mm 16Rnd Mag(13/16)[id/cr:10000011/0]"
|x5= <code>_cmd = [[currentMagazineDetail]] [[player]]; //"9mm 16Rnd Mag(13/16)[id/cr:10000011/0]"
Line 28: Line 28:


|x7= Remove all \r\n from file:
|x7= Remove all \r\n from file:
<code>loadFile "somefile.txt" [[splitString]] [[toString]] [13,10] [[joinString]] " "</code>
<code>loadFile "somefile.txt" splitString [[toString]] [13,10] [[joinString]] " "</code>


|seealso= ‎[[joinString]], [[set]], [[resize]], [[reverse]], [[select]], [[in]], [[find]], [[toArray]], [[forEach]], [[count]], [[deleteAt]], [[deleteRange]], [[append]], [[sort]], [[param]], [[params]], [[arrayIntersect]], [[toString]], [[endl]], [[forceUnicode]], [http://www.utf8-chartable.de/ Unicode Character Table]
|seealso= ‎[[joinString]], [[set]], [[resize]], [[reverse]], [[select]], [[in]], [[find]], [[toArray]], [[forEach]], [[count]], [[deleteAt]], [[deleteRange]], [[append]], [[sort]], [[param]], [[params]], [[arrayIntersect]], [[toString]], [[endl]], [[forceUnicode]], [http://www.utf8-chartable.de/ Unicode Character Table]
Line 53: Line 53:
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
<dd class="note"> This commands works only with ASCII chars, any chars with codes > 127, also used in different languages, will be converted to [" ", " "]. Use [[toArray]] to preserve special characters:
<dd class="note"> This commands works only with ASCII chars, any chars with codes > 127, also used in different languages, will be converted to [" ", " "]. Use [[toArray]] to preserve special characters:
<code>_spaced = toArray "Mörser" [[apply]] {[[toString]] [_x]} [[joinString]] " "; // M ö r s e r</code>
<code>_spaced = toArray "Mörser" apply {[[toString]] [_x]} [[joinString]] " "; // M ö r s e r</code>
</dd>
</dd>


Line 65: Line 65:


...one can remove those by adding [[endl]] as delimiter
...one can remove those by adding [[endl]] as delimiter
<code>"stringWith" + endl + "Linebreak" [[splitString]] ",; " + [[endl]] //Result ["someStringWith","Linebreak"]</code>
<code>"stringWith" + endl + "Linebreak" splitString ",; " + [[endl]] //Result ["someStringWith","Linebreak"]</code>
</dd>
</dd>


</dl>
</dl>

Revision as of 12:17, 12 May 2022

Hover & click on the images for description

Description

Description:
An SQF version of C++ strtok. Splits given ANSI string str into an array of tokens according to given delimiters. In addition, if empty string "" is used for delimiters, str is split by each character. If Unicode support is desired, see forceUnicode.
Groups:
Strings

Syntax

Syntax:
str splitString delimiters
Parameters:
str: String - A string to split
delimiters: String - one or more characters, each used as a separate delimiter.
Return Value:
Array

Examples

Example 1:
_str = "- This, is a sample string." splitString "-,. "; // ["This","is","a","sample","string"] _str joinString " "; // "This is a sample string"
Example 2:
"\A3\ui_f\data\map\vehicleicons\iconLogic_ca.paa" splitString "\."; // ["A3","ui_f","data","map","vehicleicons","iconLogic_ca","paa"]
Example 3:
"1:2:3" splitString ":"; // ["1","2","3"]
Example 4:
"Japa is the best!" splitString "" joinString " "; // "J a p a i s t h e b e s t !"
Example 5:
_cmd = currentMagazineDetail player; //"9mm 16Rnd Mag(13/16)[id/cr:10000011/0]" _cmd splitString "([ ]/:)"; //["9mm","16Rnd","Mag","13","16","id","cr","10000011","0"]
Example 7:
Remove all \r\n from file: loadFile "somefile.txt" splitString toString [13,10] joinString " "

Additional Information

See also:
joinStringsetresizereverseselectinfindtoArrayforEachcountdeleteAtdeleteRangeappendsortparamparamsarrayIntersecttoStringendlforceUnicodeUnicode Character Table

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note


Posted on May 17, 2016 - 14:18 (UTC)
BaerMitUmlaut
This command is unreliable/broken when it comes to some non-ASCII characters (as of Arma 3 1.58): "Mörser" splitString "" -> ["M"," "," ","r","s","e","r"] "Mörser" splitString "ö" -> ["M","rser"] "Mörser" splitString "ä" -> ["M"," rser"]
Posted on October 17, 2016 - 14:03 (UTC)
Killzone Kid
This commands works only with ASCII chars, any chars with codes > 127, also used in different languages, will be converted to [" ", " "]. Use toArray to preserve special characters: _spaced = toArray "Mörser" apply {toString [_x]} joinString " "; // M ö r s e r
Posted on July 19, 2019 - 11:17 (UTC)
R3vo
When working with string which contain linebreaks... "stringWith" + endl + "Linebreak" splitString ",; "; //Result ["someStringWith Linebreak"] ...one can remove those by adding endl as delimiter "stringWith" + endl + "Linebreak" splitString ",; " + endl //Result ["someStringWith","Linebreak"]