Arma 3 Scripting

Command in Strings

splitString

Also available as Markdown and JSON, or read the original wiki page.

Description

Splits the provided ANSI string into an array of tokens according to given delimiters.

Note

For Unicode support, see forceUnicode.

Syntax

str splitString delimiters

Parameters:

Returns: Array of Strings

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 6

Remove all \r\n from file:

loadFile "somefile.txt" splitString toString [13,10] joinString " ";

See also

joinString · set · resize · reverse · select · in · find · toArray · forEach · count · deleteAt · deleteRange · append · sort · param · params · arrayIntersect · toString · endl · forceUnicode

Community notes

BaerMitUmlaut

This command is unreliable/broken when it comes to some non-ASCII characters (as of Arma 3 v1.58):

"Mörser" splitString "" // -> ["M"," "," ","r","s","e","r"]
"Mörser" splitString "ö" // -> ["M","rser"]
"Mörser" splitString "ä" // -> ["M"," rser"]
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
R3vo

When working with string which contain linebreaks...

"stringWith" + endl + "Linebreak" splitString ",; ";
/*
result is ["someStringWith
Linebreak"]
*/

...one can remove those by adding endl as delimiter

"stringWith" + endl + "Linebreak" splitString ",; " + endl; // result is ["someStringWith","Linebreak"]