lua实现string的split功能

function split(str,sp)
    local result = {}
    local i = 0
    local j = 0
    local num = 1
    local pos = 0
    while true do
        i , j = string.find(str,sp,i+1)
        if i == nil then
            if num ~=1 then
                result[num] = string.sub(str,pos,string.len(str))
            end
            break
        end
        result[num] = string.sub(str,pos,i-1)
        pos = i+string.len(sp)
        num = num +1
    end
    return result
end

lua本身没有Split功能,很不方便,所以自己实现了一个

原文地址:https://www.cnblogs.com/dccat/p/8870505.html

时间: 2024-12-18 07:45:17

lua实现string的split功能的相关文章

Lua的string和string库总结

Lua有7种数据类型,分别是nil.boolean.number.string.table.function.userdata.这里我总结一下Lua的string类型和string库,复习一下,以便加深记忆. 个人认为string是Lua编程使用数据结构的时候,重要性仅次于table的类型.十分重要! 一.string基础. Lua并没有字符类型,Lua的string类型表示字符序列.所以,长度为1的string就表示了单个字符.Lua的字符类型有这些特征: 1.string字符序列中的字符采用

lua中打印所以类型功能实现table嵌套table

lua中打印所以类型功能实现 本人测试 number.string.bool.nil.table嵌套table.userdata没问题 共享一下有什么问题请拍砖 代码如下 cclog = function( ... ) local tv = "\n" local xn = 0 local function tvlinet(xn) -- body for i=1,xn do tv = tv.."\t" end end local function printTab(i

[Java]_[初级]_[String的split里的坑]

场景: 1. 有时候需要使用某些字符来作为值的合并存储,比如以@作为分隔符, [email protected]@323232, 用一个属性存储这3个值, 用的时候再拿出来split就可以了. 2. 问题是有时候某个值会缺失,比如第一个值没有的情况, @[email protected]  第2,3个值没有的情况 [email protected]@ ,当然也期望是能返回3个值,只是后边2个值为空字符就行了. 事实上,结果不是这样,即使 2,3个值没有的情况 [email protected]@

Lua的string.format 注意事项

 // note: Lua 的string.format 中格式化字符串的格式必须与参数相匹配, //       比如 %d 与变量 lamp 是对应的话,如果lamp == 2.333, //       即是个浮点数,则由于不能转换成整数而会出错 //       但如果 lamp == 2.0 的话,由于可以转成整数,就不会出错 //       对于lamp == 2.33 的情况,必须严格按照%f 来输出 版权声明:本文为博主原创文章,未经博主允许不得转载.

lua的string库与强大的模式匹配

lua原生解释器对字符串的处理能力是十分有限的,强大的字符串操作能力来自于string库.lua的string函数导出在string module中.在lua5.1,同时也作为string类型的成员方法,因此,我们既可以写成string.upper(s), 也可以s:upper(),选择你喜欢的写法. string.len(s)返回s的长度. string.rep(s, n)返回重复s字符串n次的字符串. string.lower(s)返回一份已将大写转成小写的字符串s的拷贝 lower,upp

String的split()方法探索和大揭秘

其实没打算写这么一篇博文的,但是昨天在逛论坛的时候,发现一帖子,然后我又把帖子的内容在群里发了一通,结果出现了让人惊讶的结果,所以这里简单的给大家分享一下split()方法,免得大伙儿以后还会出现这种基本知识错误! 接着说一下,昨天看到的帖子内容: String[] str1 = ";;;".split(";"); String[] str2 = ";a;;".split(";"); String[] str3 = "

关于String的split方法的一点疑问

今天莫名其妙的又做了一下leetcode上面的第一题,是简单的字符串逆序输出问题.下面是我处理的代码: public String reverseWords(String s) { if(s == null) return new String(""); StringBuffer fir = new StringBuffer(s); if(fir.length() == 0) return new String(""); while(fir.length() !=

在lua的string库和正则表达式

一.前提要了解一下lua 的string几个方法 1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,... 2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.len(s):返回字符串的长度. string.lower(s):变小写. string.upper(s):变大写. string.rep(s,n):将s拷贝n份,并连接起来,返回. string.sub(s,i [,j]):取s中从i开始到j为止的自字符串.

Java中String的split()方法的一些需要注意的地方

项目中我用到了字符串的split()方法,为这种方法的方便称赞,可是程序在测试的时候出现的问题折腾了我好久,原来在使用的时候存在着以下几个需要注意的地方. 本来使用split()方法是判断String的数量,结果这么的不靠谱,最后换成了hashset动态添加字符串,然后求hashset.size()的方法得到字符串的个数解决的.... Java代码   public String[] split(String regex, int limit) split函数是用于使用特定的切割符(regex)