关闭

趣谈分割字符串

41人阅读 评论(0) 收藏 举报
分类:

在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"}
0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:7561次
    • 积分:512
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条