趣谈分割字符串

原创 2016年08月30日 11:02:41

在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"}
版权声明:本文为博主原创文章,未经博主允许不得转载。

趣谈C语言和JAVA中的++和--

  • 2010年01月12日 21:59
  • 79KB
  • 下载

模糊数学趣谈

  • 2007年07月27日 16:56
  • 2.24MB
  • 下载

28-《电子入门趣谈》第五章_仿真世界里的电子元器件-第三部分-Mutisim案例2

下面要介绍的电路是作者大四的时候在天津大学精仪学院电路设计大赛中的作品的核心部分,该作品斩获了当年的一等奖,电路主要包括三角波发生器、积分器、加法器、过零比较器等。设计思路是分别设计每个模块,都调试成...

趣谈数据结构(五).doc

  • 2010年09月21日 20:58
  • 31KB
  • 下载

6-《电子入门趣谈》第一章_一切从单片机开始-1.3.3按键

1.3.3 按键     还是先看下面的一个电路图,还是仔细看P2接口,这里我们接了一个发光二极管D1,又接了一个按键S2,我们想实现的功能是:按下按键S2,发光二极管D1改变发光状态。实际上就是模...

趣谈数据结构(二).doc

  • 2010年09月21日 20:52
  • 41KB
  • 下载

趣谈无为而治的DBA生涯

  • 2014年06月24日 15:58
  • 14.43MB
  • 下载

19-《电子入门趣谈》第三章_电子世界中的五官---传感器-3.2.4加速度传感器

3.2.4 加速度传感器 (1)加速度传感器简介 加速度检测是基于测试仪器检测质量敏感加速度产生惯性力的测量,是一种全自主的惯性测量,加速度检测广泛应用于航天、航空和航海的惯性导航系统及运载武器的...

古今中外著名算题趣谈及详解

  • 2007年06月21日 10:36
  • 2.13MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:趣谈分割字符串
举报原因:
原因补充:

(最多只允许输入30个字)