原創文章,歡迎轉載,轉載請註明:文章來自[寒江孤葉丶的CrossApp之旅系列]
博客地址:http://blog.csdn.net/qq446569365
工作需要自己封裝了一個lua的字符串分割函數。爲了方便自己以後使用。保存在這裏。希望對其他開發者也有一些幫助吧……
---------------------------
-- @function StringSplit lua字符串分割函數
-- @param str 待分割的字符串
-- @param splitStr 用於分割字符串
-- @param addNemptyStr 是否將空字符串也放入返回字串表中(默認false,可空)
-- @param addSplitStrInTable 是否將分割用的字符串加入數組(默認false,可空)
-- @return 分割後字符串Table
-- Create by ArcherPeng
function StringSplit(str, splitStr,addNemptyStr,addSplitStrInTable)
if not addNemptyStr then addNemptyStr = false end
if not addSplitStrInTable then addSplitStrInTable = false end
local subStrTab = {};
while (true) do
local pos = string.find(str, splitStr);
if (not pos) then
if str ~="" or addNemptyStr then
subStrTab[#subStrTab + 1] = str;
end
break;
end
local subStr = string.sub(str, 1, pos - 1);
if subStr~="" or addNemptyStr then
subStrTab[#subStrTab + 1] = subStr;
end
if addSplitStrInTable then
subStrTab[#subStrTab + 1] = splitStr;
end
str = string.sub(str, pos +string.len(splitStr) , #str);
end
return subStrTab;
end
--test
print("---------")
local strTab=StringSplit("1233333456","33")
for index = 1,#strTab do
print(strTab[index])
end
print("---------")
strTab=StringSplit("1233333456","33",true)
for index = 1,#strTab do
print(strTab[index])
end
print("---------")
strTab=StringSplit("1233333456","33",true,true)
for index = 1,#strTab do
print(strTab[index])
end
print("---------")
strTab=StringSplit("1233333456","33",fasle,true)
for index = 1,#strTab do
print(strTab[index])
end
print("---------")
運行結果:
---------
12
3456
---------
12
3456
---------
12
33
33
3456
---------
12
33
33
3456
---------<span style="font-size:18px;">
</span>
另外推薦一個在線測試lua代碼的網站:
http://www.lua.org/cgi-bin/demo
這樣測試一些簡單的函數時候就不用創建一個工程了………………(電腦上裝了lua環境的請無視)