趣談分割字符串

在lua中,有的時候需要將一個字符串中的信息分割出來,就要涉及到分割字符串,下面就分割字符串做一下介紹。

function lua_string_split(str, split_char)  --str是目標分割字符串,split_char分割字符串標誌    
     local sub_str_tab = {};   --存放分割後得到的數據

    while (true) do          
        local pos = string.find(str, split_char);  --第一次分割,找到分割字符串的位置
        if (not pos) then  --pos爲false,表示不需要分割了,結束循環            
            local size_t = table.getn(sub_str_tab)  
            table.insert(sub_str_tab,size_t+1,str);  --將str添加到sub_str_tab後面
            break;    --結束循環
        end  

        local sub_str = string.sub(str, 1, pos - 1);  --位置存在,得到第一個值        
        local size_t = table.getn(sub_str_tab)  
        table.insert(sub_str_tab,size_t+1,sub_str);  --添加進去
        local t = string.len(str);  
        str = string.sub(str, pos + 1, t);    --得到新的分割字符 
    end      
        return sub_str_tab;  
end

對於上面提到的lua中的string函數,進行說明一下

string.find(str, split_char)   --str爲源字符串,split_char爲待搜索模式串,函數默認返回的是兩個值,即查找到的子串的起止下標,如果不存在匹配返回 nil
string.sub(str, pos + 1, t)   --取出字符串str 從 pos + 1到t的字符串
string.len(str)  --返回所給字符串的長度,如果字符串中包含'\0',也會被統計爲一個字符
local str = lua_string_split("2015,11,12", ",")
--得到的strstr = {[1] = "2015",[2] = "11",[3] = "12"}
發佈了46 篇原創文章 · 獲贊 13 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章