关于lua的split功能

2016-08-29  本文已影响709人  Smarttang

0x01 我爱的切割


切割字符串的功能在开发中很常见,基本上都会用到。在c里面没有这个功能,需要自己的撸出来。这让习惯了python或者perl的小伙伴很蛋疼。由于目前项目基于c开发,用到split的功能,而且实际上用c实现很麻烦,正好混lua开发,所以想用lua实现。

0x02 coding


说干就干,必须要以码会友。

#!/usr/bin/lua

common = {}

-- 切割函数(split功能)
-- szFullString 待切割数据
-- szSeparator 切割判断
function common.split(szFullString, szSeparator)
  local nFindStartIndex = 1
  local nSplitIndex = 1
  local nSplitArray = {}
  while true do
    local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex)
    if not nFindLastIndex then
      nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString))
      break
    end
    nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1)
    nFindStartIndex = nFindLastIndex + string.len(szSeparator)
    nSplitIndex = nSplitIndex + 1
  end
  return nSplitArray
end

return common

由于我比较懒,所以默认我都是做封装的,比如封装成一个包,在lua上,你可以放在package里面,然后根据自己需要引入lua的包。

0x03 后记


大家都说c+lua混合性能很高,但是实际上高到什么程度我还没真心体会出来,可能比较菜鸟。还在努力中。。。在搞split的时候,就发现好多案例,最后能用的就这个。。。好吧~

上一篇下一篇

猜你喜欢

热点阅读