splitString: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "{{Command " to "{{RV|type=command ") |
Lou Montana (talk | contribs) m (Text replacement - "<sqf>([^↵][^<]*↵[^<]*)<\/sqf>" to "<sqf> $1 </sqf>") |
||
(51 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{RV|type=command | {{RV|type=command | ||
| arma3 | |game1= arma3 | ||
|version1= 1.50 | |||
|1.50 | |||
|gr1= Strings | |gr1= Strings | ||
| | |descr= Splits the provided '''ANSI''' string into an array of tokens according to given delimiters. | ||
{{Feature|informative|For Unicode support, see [[forceUnicode]].}} | |||
| str | |s1= str [[splitString]] delimiters | ||
|p1= str: [[String]] - | |p1= str: [[String]] - the string to split | ||
| | |p2= delimiters: [[String]] - one or more characters, each used as a separate delimiter; if empty, ''str'' is split by each character | ||
| | |r1= [[Array]] | ||
| | |x1= <sqf> | ||
_str = "- This, is a sample string." splitString "-,. "; // ["This","is","a","sample","string"] | |||
_str joinString "#"; // "This#is#a#sample#string" | |||
</sqf> | |||
| | |x2= <sqf> | ||
"\A3\ui_f\data\map\vehicleicons\iconLogic_ca.paa" splitString "\."; // ["A3","ui_f","data","map","vehicleicons","iconLogic_ca","paa"] | |||
</sqf> | |||
| | |x3= <sqf>"1:2:3" splitString ":"; // ["1","2","3"]</sqf> | ||
| | |x4= <sqf>"Japa is the best!" splitString "" joinString " "; // "J a p a i s t h e b e s t !"</sqf> | ||
| [ | |x5= <sqf> | ||
_cmd = currentMagazineDetail player; // "9mm 16Rnd Mag(13/16)[id/cr:10000011/0]" | |||
_cmd splitString "([ ]/:)"; // ["9mm","16Rnd","Mag","13","16","id","cr","10000011","0"] | |||
</sqf> | |||
< | |x7= Remove all \r\n from file: | ||
<sqf>loadFile "somefile.txt" splitString toString [13,10] joinString " ";</sqf> | |||
|seealso= [[joinString]] [[set]] [[resize]] [[reverse]] [[select]] [[in]] [[find]] [[toArray]] [[forEach]] [[count]] [[deleteAt]] [[deleteRange]] [[append]] [[sort]] [[param]] [[params]] [[arrayIntersect]] [[toString]] [[endl]] [[forceUnicode]], {{Link|http://www.utf8-chartable.de/|Unicode Character Table}} {{Link|http://www.cplusplus.com/reference/cstring/strtok/|strtok (C++)}} | |||
}} | |||
{{Note | |||
|user= BaerMitUmlaut | |||
|timestamp= 20160517141800 | |||
|text= This command is unreliable/broken when it comes to some non-ASCII characters (as of {{arma3}} v1.58): | |||
<sqf> | |||
"Mörser" splitString "" // -> ["M"," "," ","r","s","e","r"] | |||
"Mörser" splitString "ö" // -> ["M","rser"] | |||
"Mörser" splitString "ä" // -> ["M"," rser"] | |||
</sqf> | |||
}} | |||
{{Note | |||
|user= Killzone_Kid | |||
|timestamp= 20161017140300 | |||
|text= 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: | |||
<sqf>_spaced = toArray "Mörser" apply {toString [_x]} joinString " "; // M ö r s e r</sqf> | |||
}} | |||
< | |||
{{Note | |||
|user= R3vo | |||
|timestamp= 20190719111700 | |||
|text= When working with string which contain linebreaks... | |||
<sqf> | |||
"stringWith" + endl + "Linebreak" splitString ",; "; | |||
/* | |||
result is ["someStringWith | |||
Linebreak"] | |||
When working with string which contain linebreaks... | */ | ||
< | </sqf> | ||
Linebreak"]</ | |||
...one can remove those by adding [[endl]] as delimiter | ...one can remove those by adding [[endl]] as delimiter | ||
< | <sqf>"stringWith" + endl + "Linebreak" splitString ",; " + endl; // result is ["someStringWith","Linebreak"]</sqf> | ||
}} | |||
Latest revision as of 19:42, 3 September 2024
Description
- Description:
- Splits the provided ANSI string into an array of tokens according to given delimiters.
- Groups:
- Strings
Syntax
- Syntax:
- str splitString delimiters
- Parameters:
- str: String - the string to split
- delimiters: String - one or more characters, each used as a separate delimiter; if empty, str is split by each character
- 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:
- 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:
Additional Information
- See also:
- joinString set resize reverse select in find toArray forEach count deleteAt deleteRange append sort param params arrayIntersect toString endl forceUnicodeUnicode Character Table strtok (C++)
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)
-
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"]
- Posted on Oct 17, 2016 - 14:03 (UTC)
- 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:
- Posted on Jul 19, 2019 - 11:17 (UTC)
- When working with string which contain linebreaks... ...one can remove those by adding endl as delimiter