From d57d5a7c0f897d24c0b22a4afe66356025f94ec3 Mon Sep 17 00:00:00 2001 From: Kazhnuz Date: Mon, 22 Mar 2021 15:54:17 +0100 Subject: [PATCH] feat(utils): add few string utils --- sonic-radiance.love/core/utils/init.lua | 3 ++- sonic-radiance.love/core/utils/string.lua | 26 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 sonic-radiance.love/core/utils/string.lua diff --git a/sonic-radiance.love/core/utils/init.lua b/sonic-radiance.love/core/utils/init.lua index 54c4dc0..cc9257c 100644 --- a/sonic-radiance.love/core/utils/init.lua +++ b/sonic-radiance.love/core/utils/init.lua @@ -28,5 +28,6 @@ return { math = require(cwd .. "math"), graphics = require(cwd .. "graphics"), filesystem = require(cwd .. "filesystem"), - table = require(cwd .. "table") + table = require(cwd .. "table"), + string = require(cwd .. "string") } diff --git a/sonic-radiance.love/core/utils/string.lua b/sonic-radiance.love/core/utils/string.lua new file mode 100644 index 0000000..2ad8f7b --- /dev/null +++ b/sonic-radiance.love/core/utils/string.lua @@ -0,0 +1,26 @@ +local String = {} + +function String.isEmpty(pString) + return (pString == "" or pString == nil) +end + +function String.split(pString, pPattern) + local Table = {} -- NOTE: use {n = 0} in Lua-5.0 + local fpat = "(.-)" .. pPattern + local last_end = 1 + local s, e, cap = pString:find(fpat, 1) + while s do + if s ~= 1 or cap ~= "" then + table.insert(Table,cap) + end + last_end = e+1 + s, e, cap = pString:find(fpat, last_end) + end + if last_end <= #pString then + cap = pString:sub(last_end) + table.insert(Table, cap) + end + return Table + end + +return String \ No newline at end of file