Split: Difference between revisions
mNo edit summary |
m (Added splitMultiple info to split) |
||
(15 intermediate revisions by 6 users not shown) | |||
Line 6: | Line 6: | ||
==Syntax== | ==Syntax== | ||
<syntaxhighlight lang="lua">table split ( string stringToSplit, int separatingChar )</syntaxhighlight> | <syntaxhighlight lang="lua">table split ( string stringToSplit, string / int separatingChar )</syntaxhighlight> | ||
===Required Arguments=== | ===Required Arguments=== | ||
* '''stringToSplit''' The string you wish to split into parts. | * '''stringToSplit''' The string you wish to split into parts. | ||
* '''separatingChar''' | * '''separatingChar''' A string of the character you want to split, or the [[ASCII|ASCII number]] representing the character you want to use to split. If you want to split a string at multiple characters see [[splitMultiple]] | ||
===Returns=== | ===Returns=== | ||
Returns a table of the | Returns a ''table'' of substrings split from the original string if successful, ''false'' otherwise. | ||
{{note|Unicode characters work but when combined with others do not. E.g: #split("a€cb†", "€") returns 3 but #split("a€cb", "€") returns 2. | |||
}} | |||
{{note|You can't use same char twice as a separator. Eg.: ||, ||| are the same as |. | |||
}} | |||
==Example== | ==Example== | ||
This | <section name="Server" class="server" show="true"> | ||
This example gives the specified weapons to the given player, while the weapons are a string in the form: 'weaponId,ammo;weaponId2,ammo2;weaponId3,ammo3;..'. This is especially for data read from a .map file attribute. | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function | function giveWeapons(player, weaponsString) | ||
local weaponsTable = split(weaponsString, ';') --split the string by the semi colon | |||
for k,v in ipairs(weaponsTable) do --for all the split values do | |||
weaponId = gettok(v, 1, string.byte(',')) --get the weapon ID using gettok, retrieve the first token | |||
weaponAmmo = gettok(v, 2, ",") --get the ammo using gettok, retrieve the second token | |||
if (weaponId and weaponAmmo) then --if neither of them is invalid | |||
giveWeapon(player, weaponId, weaponAmmo) --give the player the weapons | |||
end | |||
end | |||
end | end | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</section> | |||
==See Also== | ==See Also== | ||
{{Utility functions}} | {{Utility functions}} |
Latest revision as of 16:59, 15 November 2023
This function splits a string into substrings. You specify a character that will act as a separating character; this will determine where to split the sub-strings. For example, it can split the string "Hello World" into two strings containing the two words, by spliting using a space as a separator.
Note: You can use the function gettok to retrieve a single token from the string at a specific index. This may be faster for one-off lookups, but considerably slower if you are going to check each token in a long string.
Syntax
table split ( string stringToSplit, string / int separatingChar )
Required Arguments
- stringToSplit The string you wish to split into parts.
- separatingChar A string of the character you want to split, or the ASCII number representing the character you want to use to split. If you want to split a string at multiple characters see splitMultiple
Returns
Returns a table of substrings split from the original string if successful, false otherwise.
Example
This example gives the specified weapons to the given player, while the weapons are a string in the form: 'weaponId,ammo;weaponId2,ammo2;weaponId3,ammo3;..'. This is especially for data read from a .map file attribute.
function giveWeapons(player, weaponsString) local weaponsTable = split(weaponsString, ';') --split the string by the semi colon for k,v in ipairs(weaponsTable) do --for all the split values do weaponId = gettok(v, 1, string.byte(',')) --get the weapon ID using gettok, retrieve the first token weaponAmmo = gettok(v, 2, ",") --get the ammo using gettok, retrieve the second token if (weaponId and weaponAmmo) then --if neither of them is invalid giveWeapon(player, weaponId, weaponAmmo) --give the player the weapons end end end
See Also
- addDebugHook
- base64Decode
- base64Encode
- debugSleep
- decodeString
- encodeString
- fromJSON
- generateKeyPair
- getColorFromString
- getDevelopmentMode
- getDistanceBetweenPoints2D
- getDistanceBetweenPoints3D
- getEasingValue
- getNetworkStats
- getNetworkUsageData
- getPerformanceStats
- getRealTime
- getTickCount
- getTimerDetails
- getTimers
- getFPSLimit
- getUserdataType
- getVersion
- gettok
- isTransferBoxVisible
- setTransferBoxVisible
- hash
- inspect
- interpolateBetween
- iprint
- isOOPEnabled
- isTimer
- killTimer
- md5
- passwordHash
- passwordVerify
- pregFind
- pregMatch
- pregReplace
- removeDebugHook
- resetTimer
- setDevelopmentMode
- setFPSLimit
- setTimer
- ref
- deref
- sha256
- split
- teaDecode
- teaEncode
- toJSON
- tocolor
- getProcessMemoryStats
- utfChar
- utfCode
- utfLen
- utfSeek
- utfSub
- bitAnd
- bitNot
- bitOr
- bitXor
- bitTest
- bitLRotate
- bitRRotate
- bitLShift
- bitRShift
- bitArShift
- bitExtract
- bitReplace