[寒江孤葉丶的Cocos2d-x之旅_20]Lua字符串分割函數分享,Lua StringSplit

原創文章,歡迎轉載,轉載請註明:文章來自[寒江孤葉丶的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環境的請無視)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章