最近在用lua语言写一个工具,遇见了一个问题,获取到了str="1,2,3,4,5 " 这样的 字符串 ,想要将str转换成table进行处理,以下代码就可以实现,type(list) is table
function Split(szFullString, szSeparator)
local nFindStartIndex = 1
local nSplitIndex = 1
local nSplitArray = {}
while true do
local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex)
if not nFindLastIndex then
nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString))
break
end
nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1)
nFindStartIndex = nFindLastIndex + string.len(szSeparator)
nSplitIndex = nSplitIndex + 1
end
return nSplitArray
end
用法:
local list = Split("abc,123,345", ",")
--然后list里面就是
abc
123
345
第二个参数可以是多个字符,但是不能是Lua正则表达式。例如. ,或者 %w 之类的。