Lua的字符串分割函数

LUA并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是LUA可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,LUA可以使用它们,就像是本来就内置的功能一样。LUA只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里。因此在lua中并没有其他语言那样多的系统函数。

Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。

Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。
一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。

Lua没有提供字符串分割函数,于是在网上搜了一个:

-- 参数:待分割的字符串,分割字符
-- 返回:子串表.(含有空串)
    function lua_string_split(str, split_char)
        local sub_str_tab = {};
        while (true) do
            local pos = string.find(str, split_char);
            if (not pos) then
                sub_str_tab[#sub_str_tab + 1] = str;
                break;
            end
            local sub_str = string.sub(str, 1, pos - 1);
            sub_str_tab[#sub_str_tab + 1] = sub_str;
            str = string.sub(str, pos + 1, #str);
        end
        return sub_str_tab;
    end

这个函数是正确的,但是看了Lua编程教材之后,感觉这个函数受java或C语言的影响。

所以对它做了点优化,使它更符合Lua的语法,下面的函数应该更好一些。具体细节看不懂的话,可以参之前的《Lua的string操作》。

function lua_string_split(str, split_char)
local sub_str_tab = {};
    local i = 0;
    local j = 0;
while true do
j = string.find(str, split_char,i+1);    //从目标串str第i+1个字符开始搜索指定串
        if j == nil then
            table.insert(sub_str_tab,str);
break;
end;
        table.insert(sub_str_tab,string.sub(str,i+1,j-1));
        i = j;
end
return sub_str_tab;
end





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值