Move the split function to cc.strings module as asked

This commit is contained in:
TKB Studios 2024-03-29 15:28:24 +01:00 committed by GitHub
parent 165e118bc6
commit 54dd9c6f38
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 32 additions and 0 deletions

View File

@ -109,7 +109,39 @@ local function ensure_width(line, width)
return line
end
--- Splits a string in a table.
--
-- @tparam string inputstr The string to split.
-- @tparam string sep The separator to split the string at
-- @tparam number split_count How many times the string should be splitted.
-- @treturn table A table containing the splitted strings.
-- @usage args = textutils.splitString("arg1 arg2", " ")
-- @since edit this if it goes live (I hope it does)
local function split(inputstr, sep, split_count)
expect(1, inputstr, "string")
expect(2, sep, "string", "nil")
expect(3, split_count, "number", "nil")
if sep == nil then
sep = "%s"
end
if split_count == nil then
split_count = -1
end
local splitted_table = {}
local splitted_amount = 0
for str in string.gmatch(inputstr, "([^" .. sep .. "]+)") do
if splitted_amount == split_count then
break
else
table.insert(splitted_table, str)
splitted_amount = splitted_amount + 1
end
end
return splitted_table
end
return {
wrap = wrap,
ensure_width = ensure_width,
split = split,
}